Как загрузить файл в защищенную корзину s3 из Swift с помощью корзины s3, созданной мобильным концентратором AWS?
У меня есть проект мобильного концентратора AWS, и я пытаюсь загрузить файл в защищенную папку автоматически созданного сегмента.
S3 Bucket
- частный
- защищенный
- общественности
- добавления
Я использую AWSS3TransferUtility для загрузки файлов в настоящее время после того, как мой пользователь прошел аутентификацию. Я посмотрел на документы и веб-сайт, оставленный в папках после создания. Они настроили разрешения для защиты данных различными способами в разных папках. Я смог загрузить файлы в папку загрузки без проблем. Затем я попытался загрузить в личную и защищенную папку и получил авторизованный 403 от вызова API. Я проверил в разрешениях на ведро через IAM.
Пример из IAM
BucketName | строка как | appname-userfiles-mobilehub-1213213213, ObjectPath | строка как | частный /${cognito-identity.amazonaws.com:sub}/*
Таким образом, я вывел ключ для загрузки должен включать в ключ идентификационную информацию. Как получить идентификационные данные текущего пользователя, чтобы они соответствовали и позволяли мне загружать свои файлы в S3, обеспечивая при этом их целостность защиты данных?
1 ответ
У меня был AWSIdentifyManager, чтобы получить идентификатор пользователя.
// start of upload code
let transferUtility = AWSS3TransferUtility.default()
let user = AWSIdentityManager.default().identityId
let newKey = "protected/"+user!+"/"+fileURL.lastPathComponent
transferUtility.uploadData(
data,
bucket: "appbucket-name",
key: newKey,
contentType: "text/plain",
...
//rest of code from the docs