Как загрузить файл в защищенную корзину 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
Другие вопросы по тегам