使用後臺傳輸從圖庫上傳資產的最佳方法是什麼?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