场景:
作为用户,我可以拍摄(无限量)存储在应用程序文档文件夹中的照片和视频。这些媒体文件中的每一个都在 Sqlite 数据库中获得一条记录,其中包含附加信息(例如标题)。所有这些都可以完全离线完成。
回到网上,我会看到一个对话框,其中包含我拍摄的所有视频和照片的列表以及一个启动上传过程的按钮。
通过向服务器发出多部分 POST 请求,每个文件连同其元数据一起上传。服务器的响应与元数据一起存储在 Sqlite 数据库中(因此不会发生火灾和遗忘)。
可靠的解决方案?
如果我正确阅读并理解了此图表,最简单的解决方案是将这些上传中的每一个包装在一个任务中。副作用:10 分钟后,每个任务都会被取消,这会因连接速度慢或文件非常大(例如非常长的视频)而成为问题。
推荐的方法是使用 NSUrlSession/Background 传输服务。
这引出了我的问题:
是否可以在 NSURLSessionDataTasks 中包装多部分 POST,这是否可靠,即使任务运行时间超过 10 分钟或用户正在暂停应用程序?
由于我是 Xamarin/C# 人,我非常感谢一些用于工作分段上传的示例片段,即使它是在 Objective-C 中的 ;-)。