swift – Alamofire:缓存下载到Documents文件夹的大文件

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

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

文件下载正常,但如果我关闭应用程序并再次启动它,下载将从0重新开始.我想要的是文件被立即缓存和提取.
我对Alamofire的理解是文件被下载到一个临时文件夹,然后移动到Documents文件夹,这是什么导致缓存不发生?

非常感谢

解决方法

请按顺序检查以下参考:
1. https://github.com/Alamofire/Alamofire/issues/1104
2. https://github.com/Alamofire/Alamofire#resuming-a-download
3. https://stackoverflow.com/a/39347461/3549695

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

在上面的参考文献(2)中提到iOS 10的问题阻止了它正常工作.但StackOverflow(参考文献3)的更新有一个报告,它已在iOS 10.2中修复

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...