В настоящее время я использую Mobile Hub в своем приложении. Когда я пытался использовать S3 для загрузки фотографий в корзину, я дословно скопировал функцию из документации здесь для загрузки/выгрузки файлов: https://docs.aws.amazon.com/aws-mobile/latest/developerguide/add-aws-mobile-user-data-storage.html
Это мой код в Swift, пытающийся использовать S3TransferUtility:
func uploadData(data: Data, fileName: String) {
let expression = AWSS3TransferUtilityUploadExpression()
expression.progressBlock = {(task, progress) in
DispatchQueue.main.async(execute: {
// Do something e.g. Update a progress bar.
})
}
var completionHandler: AWSS3TransferUtilityUploadCompletionHandlerBlock?
completionHandler = { (task, error) -> Void in
DispatchQueue.main.async(execute: {
// Do something e.g. Alert a user for transfer completion.
// On failed uploads, `error` contains the error object.
})
}
let transferUtility = AWSS3TransferUtility.default()
transferUtility.uploadData(data,
bucket: "my bucket name",
key: fileName,
contentType: "image/jpeg",
expression: expression,
completionHandler: completionHandler).continueWith {
(task) -> AnyObject? in
if let error = task.error {
print("Error: \(error.localizedDescription)")
}
if let res = task.result {
// Do something with uploadTask.
print(res)
}
return nil
}
}
Я получаю эту ошибку в консоли: Изображение ошибки в консоли
Я исследовал AWS S3 и предоставленный файл awsconfiguration.json, и, похоже, все в порядке:
файл AWSConfiguration.json в моем проекте
Прямо сейчас я в замешательстве, потому что думал, что Mobile Hub должен заботиться о конфигурациях IAM, а не обо всем.
Может ли кто-нибудь указать мне правильное направление, чтобы исправить это? Спасибо.