【问题标题】:Can NSInputStream be used to read chunks of data with offset to be able to upload large filesNSInputStream 可以用来读取带有偏移量的数据块,以便能够上传大文件
【发布时间】:2020-09-20 23:31:07
【问题描述】:

我想知道是否有办法使用NSInputStream 来读取具有一定偏移量的数据块。例如,有一个大小为 100MB 的文件,我需要大小为 10MB 的块,但我需要在第一个块之前的第 5 个块。

目标是能够将大文件上传到服务器。后端需要可以立即发送的数据块。例如,这个想法是使用NSOperationQueue 并将maxConcurrentOperationCount 设置为5。每个任务都需要不同的块来发送。我知道- (NSData *)subdataWithRange:(NSRange)range - 但这需要整个NSData 一直在内存中。这不适用于大文件,所以我更喜欢使用NSInputStream。可以使用NSInputStream 乱序读取块吗?如何或应该使用其他方法?

【问题讨论】:

    标签: ios nsinputstream


    【解决方案1】:

    您可以打开基于文件的NSInputStream,然后使用NSStreamFileCurrentOffsetKey 属性指定所需的偏移量。同时,如果在NSURLRequiestNSInputStream 上实现上传,chunk 的大小不在你的控制范围内。它的值硬编码在 CFNetworking 框架中。

    【讨论】:

      猜你喜欢
      • 2012-10-15
      • 2011-10-29
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-06
      • 2019-07-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多