如何在ios中恢复大文件的下载
Posted
技术标签:
【中文标题】如何在ios中恢复大文件的下载【英文标题】:How to resume downloads of large files in ios 【发布时间】:2018-04-24 11:46:30 【问题描述】:我正在使用 URLSession 的 downloadTask 下载一个大文件。我面临的问题是如何提供暂停和恢复功能。我已经读过使用 resumeData 取消 downloadTask 会返回 resumeData ,下次可以使用它来恢复下载。但是对于一个非常大的文件,这个 resumeData 可能非常大(我认为。取决于文件大小和下载暂停的阶段,它可能非常大)。我如何保存这个大的 resumeData 以便下次可以使用它来恢复下载。 还可以同时下载多个,同样的问题更加增加了。
【问题讨论】:
developer.apple.com/documentation/foundation/url_loading_system/… 【参考方案1】:简历数据块不包含实际接收到的数据。如果是这样,您将无法在 32 位架构上继续下载数 GB 的文件。
它包含的是一堆用于传输的元数据:
磁盘上存储临时文件的 URL。 指示提取何时开始的时间戳,以便它可以询问服务器文件从那时起是否已更改。 请求 URL。 请求标头集。 可能是一些 UUID。它可能只是磁盘上包含上述内容的元数据文件的 URL。我不确定是哪个。
无论哪种方式,您都不会获得数 GB 的 resumeData
blob。那将是毁灭性的。下载任务的全部意义在于它下载到磁盘,而不是内存。
【讨论】:
以上是关于如何在ios中恢复大文件的下载的主要内容,如果未能解决你的问题,请参考以下文章