如何在ios中恢复大文件的下载

时间:2018-04-24 11:46:30

标签: ios nsurlsessiondownloadtask

我正在使用downloadTask of URLSession下载一个大文件。我面临的问题是如何提供暂停和恢复功能。我已经读过使用resumeData取消downloadTask会返回resumeData,可以在下次恢复下载时使用。但对于一个非常大的文件,这个resumeData可能非常大(我认为。取决于文件大小,在什么阶段下载暂停,它可能非常大)。我如何坚持这个大的resumeData,以便我可以在下次恢复下载时使用它。 此外,可以同时进行多次下载,这会更多地增加同样的问题。

1 个答案:

答案 0 :(得分:2)

简历数据blob 包含实际接收的数据。如果是这样,您将无法继续在32位架构上下载多GB文件。

它包含的是一堆传输元数据:

  • 存储临时文件的磁盘上的URL。
  • 一个时间戳,指示何时开始提取,以便它可以询问服务器此后文件是否已更改。
  • 请求网址。
  • 请求标头集。
  • 可能是一些UUID。

它可能只是磁盘上包含上面列出的内容的元数据文件的URL。我不确定是哪一个。

无论哪种方式,你都不会得到一个数千兆字节resumeData的blob。那将是毁灭性的。下载任务的重点是它下载到磁盘而不是内存。