2017-12-15 7 views
0

私のAWSアカウントのS3で私のバケットにあるJSONファイルをダウンロードしようとしています。私は、非認証cognitoプールを作成し、サンプルコードから私のアプリデリゲートにこれをコピー:JSONファイルを認証されていないユーザーとしてダウンロードするAWS/S3/Cognito

let transferManager = AWSS3TransferManager.default() 
    let downloadingFileURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("db_storage/costdb_latest.json ") 

    if let downloadRequest = AWSS3TransferManagerDownloadRequest(){ 
     downloadRequest.bucket = "coast-s3-bucket" 
     downloadRequest.key = "db_storage/costdb_latest.json " 
     downloadRequest.downloadingFileURL = downloadingFileURL 


     transferManager.download(downloadRequest).continueWith(executor: AWSExecutor.default(), block: { (task: AWSTask<AnyObject>) -> Any? in 
      if(task.error != nil){ 
       print(task.error!.localizedDescription) 
       return nil 
      } 

      print(task.result!) 

      if let data = NSData(contentsOf: downloadingFileURL){ 
       DispatchQueue.main.async(execute: {() -> Void in 
        print(data) 
       }) 
      } 
      return nil 
     }) 
    } 

バケットとプールの両方がしている:私はこのコードを持っている私のビューコントローラで

let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.USWest2, 
                  identityPoolId:"us-west-2:59a31a8f-ee6a-45fe-adaa-fa3eff871c80") 

    let configuration = AWSServiceConfiguration(region:.USWest2, credentialsProvider:credentialsProvider) 

    AWSServiceManager.default().defaultServiceConfiguration = configuration 

同じ地域。 USWest2(オレゴン州)。私のバケツは公開されており、AmazonS3FullAccessとAmazonS3ReadOnlyAccessを私のポリシーに追加しました。そして、私はこのエラーを受け取ります:

The operation couldn’t be completed. (com.amazonaws.AWSS3ErrorDomain error 4.) 
+0

「許可されていない」ではなく「認証されていない」という意味ですか?彼らは非常に異なるものです。 – jarmod

答えて

0

それは認証/許可エラーではありません(私は思う)。その外観から、設定(リージョン、エンドポイントなど)に問題があります。一般的に、これらのエラーには、何が間違っているかの完全な説明が含まれています完全なエラーメッセージを記録してみてください。

また、this S3 TransferManagerのサンプルアプリケーションを参照してください。 S3 &コグニトの詳細を使用してください。これがうまくいくと、いくつかのコード問題があり、これらの両方を比較することで見つけ出すことができます。これがうまくいかなければ、これはサービス上の問題かもしれません。

関連する問題