我目前正在设计一个系统,用于将多个图像从应用程序上传到服务器。文件将存储在本地设备上,目前的想法是将它们分成块,然后逐块上传到服务器,等待成功消息返回,然后再上传下一个。
这个过程对用户来说应该是无缝的,他们应该按下一个按钮来提交所有图像,然后能够关闭应用程序并让它在后台继续。在 iOS 7 中,我看到您可以将上传的内容传递给新的 NSURLSession API,并让它处理独立于您的应用程序的上传任务。
我想知道是否有人知道这种转移有多可靠。如果我将整个图像传递给它,如果互联网连接中途中断会发生什么?后台传输服务是否稍后重试?我们的想法是我们可以上传一张图片,如果它在中途失败,我们可以在稍后恢复连接时从该点继续。
我们的一个想法是将文件分成块,然后将所有块作为单独的 NSURLSessionUploadTasks 传递,并假设它们最终都会被发送到服务器。
另一个是使用以下方法发送第一个块:
uploadTaskWithRequest:fromData:completionHandler:
然后在completionHandler中再发送下一个chunk。我的问题是,如果在后台下一个块将有它的
@property BOOL discretionary = true
这意味着它只会在插入时通过 WiFi 发送。我需要它在所有网络上工作并能够应对中断。
我不想要任何代码,只是建议这是否是实现这一目标的正确方法。