gpt4 book ai didi

swift - 以未经身份验证的用户身份下载 JSON 文件 AWS/S3/Cognito

转载 作者:行者123 更新时间:2023-11-30 11:55:53 30 4
gpt4 key购买 nike

我正在尝试下载一个 JSON 文件,该文件位于我的 AWS 帐户上 S3 的存储桶中。我创建了一个未经身份验证的认知池,并将其从示例代码复制到我的应用程序委托(delegate)中:

    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

在我的 View Controller 中,我有以下代码:

    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
})
}

桶和池都在同一个区域。 USWest2(俄勒冈州)。我的存储桶是公共(public)的,并且我已将 AmazonS3FullAccess 和 AmazonS3ReadOnlyAccess 添加到我的策略中。我收到此错误:

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

最佳答案

这不是身份验证/授权错误(我认为)。从外观上看,配置(区域、端点等)存在一些问题。一般来说,这些错误包含错误的完整描述。尝试记录完整的错误消息。

另请参阅this S3 TransferManager 的示例应用程序。使用您的 S3 和 Cognito 详细信息。如果这有效,则存在一些代码问题,您可以通过比较这两个问题来找出答案。如果这不起作用,则可能是服务问题。

关于swift - 以未经身份验证的用户身份下载 JSON 文件 AWS/S3/Cognito,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47823988/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com