У меня возникла проблема с S3. После 3 часов устранения неполадок (пока я узнал о ролях IAM & удалось создать их) Я застреваю, пытаясь загрузить изображение профиля fb на амазонку S3.Загрузить jpg на S3: «Корпус запроса неожиданно завершен»
Мой код:
if let imageData = NSData(contentsOf: NSURL(string: url) as! URL) {
let fileName = ProcessInfo.processInfo.globallyUniqueString + ".jpg"
let fileURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName)
let image = UIImage(data: imageData as Data)
let imageData = UIImageJPEGRepresentation(image!, 1.0)!
do {
try imageData.write(to: fileURL! as URL)
} catch _ {
self.log.error("Could not write to file.")
}
let transferManager = AWSS3TransferManager.default()
let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest?.bucket = "app-files"
uploadRequest?.key = "user-data/" + awsId! + "_primary_profile_picture.jpg"
uploadRequest?.body = fileURL!
transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask<AnyObject>) -> Any? in
if let error = task.error as? NSError {
if error.domain == AWSS3TransferManagerErrorDomain, let code = AWSS3TransferManagerErrorType(rawValue: error.code) {
switch code {
case .cancelled, .paused:
break
default:
print("Error uploading: \(uploadRequest?.key) Error: \(error)")
}
} else {
print("Error uploading: \(uploadRequest?.key) Error: \(error)")
}
return nil
}
let uploadOutput = task.result
print("Upload complete for: \(uploadRequest?.key)")
return nil
})
}
** Проблема ** Я постоянно получаю ошибку The request body terminated unexpectedly
от S3, которая выглядит следующим образом:
Error uploading: Optional("user-data/eu-west-1:xxxx-xxxx-xxxx-xxxx-xxxxxxxxxx_primary_profile_picture.jpg")
Error: Error Domain=com.amazonaws.AWSS3ErrorDomain Code=0 "(null)"
UserInfo={HostId=XXX,
Message=The request body terminated unexpectedly,
Code=IncompleteBody,
RequestId=1485A0FFBD7819D7}
Я не уверен, что происходит неверно, я отлаживал, и fileName, fileURL, imageData выглядит нормально
Существует ошибка в версии 2.5.1 SDK, если вы можете отказаться от версии 2.5.0. – donkon
Мне пришлось обновить из-за быстрой поддержки 3:/с 2.5 ничего не работало (cognito, dynamo, ...) –
Поддержка Swift 3 была введена в 2.5.0. Изменение не должно нарушать ни одну из перечисленных служб ... теоретически. Можете ли вы дать некоторые подробности о том, как cognito и dynamo не работали? – donkon