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

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

S3 Bucket

  • private
  • protected
  • public
  • uploads

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

Пример из IAM

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

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

1 Ответ

0 голосов
/ 03 июня 2018

У меня был 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
...