gpt4 book ai didi

ios - aws ios sdk - 从 s3 下载图像的问题

转载 作者:行者123 更新时间:2023-11-28 08:40:59 24 4
gpt4 key购买 nike

我正在尝试使用 iOS sdk (swift) 从我的 s3 存储桶下载图像,但我总是收到 access-denied 错误


Domain=com.amazonaws.AWSS3ErrorDomain Code=1 "(null)"UserInfo={HostId=asadadadadad=, Message=Access Denied, Code=AccessDenied, RequestId=A467438974F8127B}]

当我不使用任何 ACL 设置时,它可以很好地处理上传。如果我设置 ACL

 let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest.ACL = AWSS3ObjectCannedACL.AuthenticatedRead

上传下载均失败

以下是我的认知和 IAM 策略

{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource":["arn:aws:s3:::yimages/*"]
},{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource":["arn:aws:s3:::yimages"]
}
]
}

{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"AddCannedAcl",
"Effect":"Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource":["arn:aws:s3:::yimages/*"]
}
]
}

我确定这与政策有关,但我无法弄清楚是什么.. 让我困惑的是为什么上传有效但下载无效?

非常感谢任何帮助..

最佳答案

  1. GetObject 和 PutObject 指的是对存储桶内的对象执行的操作,不适用于存储桶 (arn:aws:s3:::yimages)。对于存储桶本身,您需要提供如下所示的存储桶操作:
"Action": [
"s3:GetBucketLocation",
"s3:ListBucket",
"s3:ListAllMyBuckets"
]
  1. 您可以尝试将类似的策略添加到“权限”选项卡的显式“存储桶策略”部分,以指定存储桶和对象级别的权限

关于ios - aws ios sdk - 从 s3 下载图像的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36465113/

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