1 つのファイルに 100 MB のデータがあります。この 100 mb のデータは仮想的に分割されます。つまり、異なる 5MB チャンクを指す NSInputStream を作成する必要があります。これは、NSData でストリームを作成することで可能になります。
しかし、むしろ、ファイル内のデータの範囲を指す NSInputStream を持つことができるかどうか知りたいですか?
1 つのファイルに 100 MB のデータがあります。この 100 mb のデータは仮想的に分割されます。つまり、異なる 5MB チャンクを指す NSInputStream を作成する必要があります。これは、NSData でストリームを作成することで可能になります。
しかし、むしろ、ファイル内のデータの範囲を指す NSInputStream を持つことができるかどうか知りたいですか?
NSInputStream
インスタンスを渡してファイルをアップロードする場合はNSURLRequest.HTTPBodyStream
、サブクラスを作成し、NSInputStream
アップロードするバイトのみをストリーミングする必要があります。使用NSFileHandle
はここではオプションではありません。
NSInputStream
で動作する のサブクラスを作成するのNSURLRequest
は非常に難しいですが、幸いなことに、それを実現する方法についてのすばらしいブログ投稿があります。
NSInputStream
ここでは、この目的のためにすぐに使用できる のサブクラスを見つけることができます。
ChunkInputStream
ファイルを別の読み取りでフィードしNSInputStream
、開始位置と読み取るバイト数を渡すことができます。
迅速な例:
let fileInputStream = NSInputStream(fileAtPath: "/tmp/readme")
let inputStream = ChunkInputStream(inputStream: fileInputStream)
inputStream.startPosition = 2097152
inputStream.readMax = 1048576