使用后台传输从图库上传资产的最佳方法是什么?NSURLSession:上传带有后台传输的资产
好像uploadTaskWithRequest:fromData:
不与backgroundSessionConfiguration
创建NSURLSession
,因为它会导致异常的工作:“由于未捕获的异常‘NSGenericException’,原因终止应用程序:“上传背景会议的任务必须是从文件”。从异常情况描述来看,后台传输不应该适用于流式上传任务。
不够公平。当您考虑上传磁盘上已有的数据时,首先想到的是uploadTaskWithRequest:fromFile:
。但NSURLSession类参考告诉我们,这种方法只适用于文件URL,但是当你得到资产的URL路径时,它从“assets-library:// asset/...”开始,并提供这个路径不起作用。
因此,似乎剩下的唯一选择是将资源库中的文件复制到临时目录中,并将其文件url提供给uploadTaskWithRequest:fromFile:
。但它没有任何意义,因为您已将资产文件保存在磁盘上。 我错过了什么吗?
更新:
在技术讲座活动与苹果公司的工程师交谈,他证实背景NSURLSession仅支持文件URL。所以确实需要将资产库复制到临时目录中,并将其文件url提供给uploadTaskWithRequest:fromFile:
以使用后台NSURLSession上传它。 虽然这种行为在未来可能会改变。
嗯,是的。复制文件基本上是我现在正在做的。你在nsursession上的进展如何? –
你的猜测似乎是正确的。 –
@RobertGeifman所以基本上uploadTaskWithRequest:fromData:不起作用? – marciokoko