【问题标题】:AWSS3TransferUtility background upload - disable cellular access (wi-fi only)AWSS3TransferUtility 后台上传 - 禁用蜂窝访问(仅限 Wi-Fi)
【发布时间】:2016-05-06 07:06:24
【问题描述】:

哟。我在 iOS 上使用 AWS S3 SDK,需要上传大文件(视频)。

由于它们很大,我需要在应用程序处于后台、暂停或终止时继续上传(AWSS3TransferUtility 在这里完成繁重的工作)。

另外,由于它们很大,我想在未连接到 WiFi 时暂停上传,并在重新连接时恢复。我相信这是配置了allowsCellularAccess = NONSURLSession 的本质。

由于我无法在应用程序处于后台或终止状态时查看可达性并手动暂停/恢复任务,我希望这必须在 AWSS3TransferUtility 上进行配置,但遗憾的是还没有找到任何这样做的方法。

有谁知道这是否可能,以及如何实现上述目标?

非常感谢。

--

PS: 我正在使用的示例代码是亚马逊的示例项目:https://github.com/awslabs/aws-sdk-ios-samples/tree/master/S3BackgroundTransfer-Sample

Obj-c,iOS 9

【问题讨论】:

  • 目前,SDK 不公开AWSNSURLSessionConfiguration。如果您使用的是 CocoaPods,您可以自己修改 SDK 代码。类似的 feature request 在 GitHub 存储库上打开。您也可以在此处将其作为功能请求提出。
  • 谢谢,感谢您的帮助!

标签: ios amazon-web-services background awss3transferutility


【解决方案1】:

这现在是可能的,截至AWS SDK v2.3.6

let credentialsProvider = AWSCognitoCredentialsProvider(regionType: myRegion, identityPoolId: myIdentityPoolId)
let configuration = AWSServiceConfiguration(region: myRegion, credentialsProvider: credentialsProvider)
configuration.allowsCellularAccess = false
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration

【讨论】:

  • 在工作的时候改变它仍然有效吗?
  • @Dincer 不,我不这么认为。我认为你必须把整个事情拆掉并重新实例化。不过我还没有实现。
  • 是的,我就是这样做的。但是,如果我没记错的话, URLSessionTask 可能会拒绝暂停正在进行的任务。你可能不得不等待它投降。然后做蜂窝的事情并继续。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-30
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 2012-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多