【发布时间】:2018-05-29 04:05:47
【问题描述】:
我正在尝试下载一个 JSON 文件,该文件位于我的 AWS 账户的 S3 中的存储桶中。我创建了一个未经身份验证的认知池,并将其从示例代码复制到我的应用程序委托中:
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
在我的视图控制器中,我有以下代码:
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
})
}
bucket 和 pool 都在同一个区域。 USWest2(俄勒冈州)。我的存储桶是公开的,我已将 AmazonS3FullAccess 和 AmazonS3ReadOnlyAccess 添加到我的策略中。我收到了这个错误:
The operation couldn’t be completed. (com.amazonaws.AWSS3ErrorDomain error 4.)
【问题讨论】:
-
您的意思是“未经身份验证”而不是“未经授权”?它们是非常不同的东西。