Я бы рекомендовал использовать TransferUtility вместо TransferManager. TransferManager находится на пути устаревания и не имеет всех функций, которые имеет TransferUtility. Вот фрагмент кода, показывающий, как вы можете загрузить файл с помощью шифрования на стороне сервера.
let transferUtility = AWSS3TransferUtility.default()
let uploadExpression = AWSS3TransferUtilityUploadExpression()
uploadExpression.setValue("AES256", forRequestHeader: "x-amz-server-side-encryption")
uploadExpression.progressBlock = {(task, progress) in
print("Upload progress: ", progress.fractionCompleted)
}
let uploadCompletionHandler = { (task: AWSS3TransferUtilityUploadTask, error: Error?) -> Void in
if let error = error {
//Error completing transfer. Handle Error
}
else {
//Successfully uploaded.
......
return nil
}
}
transferUtility.uploadData(
data,
bucket: "bucket",
key: "key",
contentType: "contenttype",
expression: uploadExpression,
completionHandler: uploadCompletionHandler
).continueWith (block: { (task) -> Any? in
if let error = task.error {
//Error initiating transfer. Handle error
}
return nil
})
}
Вот ссылка на дополнительную информацию о том, как использовать TransferUtility - https://docs.aws .amazon.com / aws-mobile / latest / developerguide / how-to-transfer-files-with-transfer-utility.html