要求?,ios,swift,iphone,awss3transfermanager"/>

首页 > 解决方案 > 如何取消 AWSTask要求?

问题描述

我正在 AWSS3 服务器中上传图像之类的文件,但无法取消请求。

我试图在上传任务开始后取消请求。我正在使用task.result.cancel()方法来取消任务。

let awsTransferUtility = AWSS3TransferUtility.s3TransferUtility(forKey: AWSConfiguration.callbackKey)

        let task = awsTransferUtility!.uploadFile(url,
                                                  bucket: bucket,
                                                  key: key,
                                                  contentType: file.type.contentType,
                                                  expression: expression,
                                                  completionHandler: completionHandler)
            .continueWith(block: { (task) -> Any? in
                if task.error != nil {
                    completion(nil, task.error)
                }
                return nil
            }) as! AWSTask<AWSS3TransferUtilityUploadTask>

我只想取消请求,文件不会上传到服务器上。

标签: iosswiftiphoneawss3transfermanager

解决方案


根据文档,您可以AWSS3TransferUtilityUploadTask通过调用task.result.

返回 AWSTask 的一个实例。成功初始化后,task.result 包含 AWSS3TransferUtilityUploadTask 的实例。

然后你应该能够调用cancel实例AWSS3TransferUtilityUploadTask

let task: AWSTask<AWSS3TransferUtilityUploadTask> = ...
let uploadTask: AWSS3TransferUtilityUploadTask = task.result
uploadTask.cancel()

推荐阅读