私の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.)
「許可されていない」ではなく「認証されていない」という意味ですか?彼らは非常に異なるものです。 – jarmod