Это мой код, чтобы выполнить задачу загрузки:AWS S3 iOS SDK: как возобновить загрузку после того, как соединение прервано?
let image = UIImage(named: "12.jpeg")
let fileManager = FileManager.default
let imageData = UIImageJPEGRepresentation(image!, 0.99)
let path = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("\(imageData!).jpeg")
fileManager.createFile(atPath: path as String, contents: imageData, attributes: nil)
let fileUrl = NSURL(fileURLWithPath: path)
uploadRequest?.bucket = "testrawdata"
uploadRequest?.key = "test/loodfd.jpeg"
uploadRequest?.contentType = "image/jpeg"
uploadRequest?.body = fileUrl as URL!
uploadRequest?.serverSideEncryption = AWSS3ServerSideEncryption.awsKms
uploadRequest?.uploadProgress = { (bytesSent, totalBytesSent, totalBytesExpectedToSend) -> Void in
DispatchQueue.main.async(execute: {
print("bytes sent \(bytesSent), total bytes sent \(totalBytesSent), of total \(totalBytesExpectedToSend)")
})
}
transferManager?.upload(uploadRequest).continue(with: AWSExecutor.mainThread(), withSuccessBlock: { (taskk: AWSTask) -> Any? in
if taskk.error != nil {
// Error.
} else {
// Do something with your result.
}
return nil
})
}
Я знаю, мне не нужно, чтобы применить его к изображению, но это всего лишь пример, по умолчанию я буду отправлять файлы как 100mb ,
Когда я переношу свой телефон в режим полета во время передачи, снова включите сеть, он не завершит задачу загрузки.
В документах не указано, что делать, чтобы возобновить прерванную задачу.
Вот что я пробовал:
я ставлю инициализации запроса и менеджера в viewDidLoad(), чтобы гарантировать, что я не создаю другой запрос
class ViewController: UIViewController {
var uploadRequest:AWSS3TransferManagerUploadRequest!
var transferManager: AWSS3TransferManager!
override func viewDidLoad() {
super.viewDidLoad()
uploadRequest = AWSS3TransferManagerUploadRequest()
transferManager = AWSS3TransferManager.default()
}
и попытался вызвать
func resumeTransfer() {
transferManager?.resumeAll(nil)
}
Но это не работает.
Заранее спасибо
Вы проверили http://docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transfermanager.html#create-the-s3-transfermanager -client? – WestonE
@WestonE Я так и не смог найти ответ на свой вопрос – DCDC
У вас возникли проблемы с резюме для отдельных файлов? Из Дева руководства: ----- Чтобы возобновить передачу, позвоните и загрузке файлов, в зависимости от обстоятельств, и передать в приостановленном запросе: [transferManager загрузка: uploadRequest]; [transferManager download: downloadRequest]; ------ – WestonE