Ios AWS S3传输实用程序-如何安排后台上传并克服这些限制?

Ios AWS S3传输实用程序-如何安排后台上传并克服这些限制?,ios,swift,amazon-web-services,networking,amazon-s3,Ios,Swift,Amazon Web Services,Networking,Amazon S3,AWS官方文件规定如下: S3传输实用程序生成AmazonS3预签名URL以用于 后台数据传输。使用Amazon Cognito标识,您将收到 AWS临时凭据的有效期最长为60分钟。同时 时间,生成的S3预签名URL不能超过该时间。 由于此限制,S3传输实用程序强制执行50分钟 传输超时,在AWS临时传输之前留出10分钟的缓冲区 重新生成凭据。50分钟后,您将收到一张转账单 失败 如果您需要传输的数据不能在50以下传输 分钟后,改用AWSS3 在我的情况下,我希望在Wifi可用时安排后台传输。但

AWS官方文件规定如下:

S3传输实用程序生成AmazonS3预签名URL以用于 后台数据传输。使用Amazon Cognito标识,您将收到 AWS临时凭据的有效期最长为60分钟。同时 时间,生成的S3预签名URL不能超过该时间。 由于此限制,S3传输实用程序强制执行50分钟 传输超时,在AWS临时传输之前留出10分钟的缓冲区 重新生成凭据。50分钟后,您将收到一张转账单 失败

如果您需要传输的数据不能在50以下传输 分钟后,改用AWSS3

在我的情况下,我希望在Wifi可用时安排后台传输。但这可能不会很快发生,很可能会超过60分钟的有效时间

我想知道是否有办法处理这个问题。也许在60分钟后,系统可以以某种方式重试请求,或者让会话排队

你会怎么做?你们中有谁曾经面对过这样的问题并设法解决了它吗

这是我上传文件的代码(请注意,这只是一个示例,在默认配置中,我将发送约200mb的文本文件)

func uploadData(data: NSData) {

let expression = AWSS3TransferUtilityUploadExpression()
expression.progressBlock = progressBlock

let transferUtility = AWSS3TransferUtility.default()

transferUtility.uploadData(
    data as Data,
    bucket: "test",
    key: "test/test.jpeg",
    contentType: "image/jpeg",
    expression: expression,
    completionHander: completionHandler).continue(successBlock: { (task) -> AnyObject! in
        if let error = task.error {
            NSLog("Error: %@",error.localizedDescription);

        }
        if let exception = task.exception {
            NSLog("Exception: %@",exception.description);

        }
        if let _ = task.result {

            NSLog("Upload Starting!")
            // Do something with uploadTask.
        }

        return nil;
    })
}