AWS / iOS SDK:我什么时候应该使用 AWSS3TransferManager 和 AWSS3TransferUtility?

AWS / iOS SDK: when should I use AWSS3TransferManager and AWSS3TransferUtility?

AWSS3TransferManagerAWSS3TransferUtilityAmazon S3 iOS SDK 中的用法有什么区别?

AWSS3TransferManager 的文档内容如下:

High level utility for managing transfers to Amazon S3. S3TransferManager provides a simple API for uploading and downloading content to Amazon S3, and makes extensive use of Amazon S3 multipart uploads to achieve enhanced throughput, performance and reliability.

AWSS3TransferUtility:

A high-level utility for managing background uploads and downloads. The transfers continue even when the app is suspended. You must call + application:handleEventsForBackgroundURLSession:completionHandler: in the - application:handleEventsForBackgroundURLSession:completionHandler: application delegate in order for the background transfer callback to work.

根据描述,主要区别似乎是 AWSS3TransferUtility 是为 background 任务设计的。

这是正确的吗?这是否意味着我不应该将 AWSS3TransferManager 用于后台任务?这似乎违反直觉,因为大多数传输很可能作为移动客户端中的单独后台线程发生。

抱歉,有点混乱。 'background' 并不意味着脱离主线程,尽管这些传输脱离了主线程,而是意味着当您的应用程序处于后台时。

转会经理:

  • 支持multi-part上传
  • 如果应用被终止,传输管理器可以恢复部分完成的上传

传输效用:

  • 传输实用程序将允许用户退出应用程序,并继续上传您的文件。
  • Transfer Utility 允许您上传二进制有效载荷,而无需先将其保存到文件中。
  • Transfer Utility 也较新,功能更新可能会进入该客户端。