Как загрузить файл в защищенную корзину s3 из Swift с помощью корзины s3, созданной мобильным центром AWS?

У меня есть проект мобильного концентратора AWS, и я пытаюсь загрузить файл в защищенную папку автоматически созданного сегмента.

Ковш S3

  • частный
  • защищенный
  • общественный
  • загружает

Я использую AWSS3TransferUtility для загрузки файлов в настоящее время после аутентификации моего пользователя. Я просмотрел документы и веб-сайт, оставшиеся в папках при создании. Они установили разрешения для защиты данных по-разному в разных папках. Мне без проблем удалось загрузить файлы в папку загрузок. Затем я попытался загрузить в частную и защищенную папку и получил авторизованный 403 от вызова API. Проверил разрешения на ведро через IAM.

Пример из IAM

BucketName | строка как | appname-userfiles-mobilehub-1213213213, ObjectPath | строка как | private / $ {cognito-identity.amazonaws.com:sub}/*

Итак, я пришел к выводу, что ключ для загрузки должен включать в себя когнитивную идентичность. Как мне получить когнитивную идентификацию текущего пользователя, чтобы она соответствовала и позволяла мне загружать мои файлы в S3, обеспечивая при этом целостность защиты их данных?


person Victor 'Chris' Cabral    schedule 02.06.2018    source источник
comment
Это может быть повторение stackoverflow.com/questions/42605419/   -  person Victor 'Chris' Cabral    schedule 03.06.2018


Ответы (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
person Victor 'Chris' Cabral    schedule 02.06.2018