I am using AWSLocal
content upload method to upload file. I need to cancel uploading from another screen .
Here is the uploading function :
private func uploadLocalContent(localContent: AWSLocalContent) {
localContent.uploadWithPinOnCompletion(false, progressBlock: {[weak self](content: AWSLocalContent?, progress: NSProgress?) -> Void in
guard let strongSelf = self else { return }
dispatch_async(dispatch_get_main_queue()) {
// Update the upload UI if it is a new upload and the table is not yet updated
if(strongSelf.tableView.numberOfRowsInSection(0) == 0 || strongSelf.tableView.numberOfRowsInSection(0) < strongSelf.manager.uploadingContents.count) {
strongSelf.updateUploadUI()
} else {
for uploadContent in strongSelf.manager.uploadingContents {
if uploadContent.key == content?.key {
let index = strongSelf.manager.uploadingContents.indexOf(uploadContent)!
let indexPath = NSIndexPath(forRow: index, inSection: 0)
strongSelf.tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .None)
}
}
}
}
}, completionHandler: {[weak self](content: AWSContent?, error: NSError?) -> Void in
guard let strongSelf = self else { return }
strongSelf.updateUploadUI()
if let error = error {
print("Failed to upload an object. \(error)")
strongSelf.showSimpleAlertWithTitle("Error", message: "Failed to upload an object.", cancelButtonTitle: "OK")
} else {
strongSelf.refreshContents()
}
})
updateUploadUI()
}
Unfortunately there's no way to cancel an upload when called from AWSLocalContent
as there's no access to the AWTask
.
Look into AWSS3TransferManager
(http://docs.aws.amazon.com/AWSiOSSDK/latest/Classes/AWSS3TransferManager.html#//api/name/upload:) that creates a AWTask
for each action, it can be upload or download, that can be canceled/paused/resumed. Plus you get convenience methods from AWSS3TransferManager
which can cancel/pause/resume all tasks at once.
You'll have to create the uploading AWTask
, keep it somewhere accessible from your other screen and then you'll be able to cancel it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With