Alamofire:缓存下载到文档文件夹的大文件

4

我使用这段代码将MP3文件下载到文档目录:

let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory)
Alamofire.download(theUrl!, to:destination).response { response in
    // stuff
}.downloadProgress { progress in
    // Stuff
}

文件可以正常下载,但是如果我关闭应用程序并重新启动它,下载将从0重新开始。我希望文件被缓存并立即获取。
我对Alamofire的理解是,文件会被下载到一个临时文件夹,然后移动到Documents文件夹,这是导致无法缓存的原因吗?
非常感谢。
1个回答

9
请按照以下顺序查看参考文献:
1. https://github.com/Alamofire/Alamofire/issues/1104
2. https://github.com/Alamofire/Alamofire#resuming-a-download
3. https://dev59.com/6VkS5IYBdhLWcg3w456B#39347461

总结如下:
在应用退出之前,您需要使用 request.cancel() API 生成 resumeData。
然后在应用重新启动时,使用 resumeData 调用 resume API 以恢复请求。
无法保证它始终有效。如果失败,则仍将从0开始重新启动。

上述第二个参考文献(2)中提到了 iOS 10 中会出现问题,导致此功能无法正常工作。 但 StackOverflow(ref. 3)上的更新报告称,已在 iOS 10.2 中修复了此问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接