先月、Cognito と iOS SDK を使用して、アプリの s3 バケットからファイルをアップロードおよびダウンロードすることに成功しました。最近、代わりにファイルを保存する新しいバケットを作成しましたが、突然何もダウンロードできなくなりました (ただし、アップロードは引き続き機能します)。次のエラーが表示されます。
Error downloading from S3: Error Domain=com.amazonaws.AWSS3ErrorDomain
Code=1 "The operation couldn’t be completed.
(com.amazonaws.AWSS3ErrorDomain error 1.)" UserInfo=0x157da330
{HostId=xlPbd8nAQvYPesh0JZ5yH7LFuV562FK85qd5MEgg3DNXn9U0m1K6e8kji
CsC4NXf, Code=AccessDenied, Message=Access Denied,
RequestId=EF39DF70A50540EA}
古いバケットとまったく同じ構成を使用していますが、必要な場所で新しいバケットの名前を変更しています。
私が使用している Unauth IAM ポリシーは次のとおりです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mobileanalytics:PutEvent",
"cognito-sync:*"
],
"Resource": [
"*"
]
},
{
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"*"
]
}
]
}
そして、これが私のバケットポリシーです:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket_name/*"
}
]
}
新しいバケットは古いバケットと同じリージョンです。今のところ、単に新しいバケットに変更しただけで何が変わったのか (そして、なぜアップロードは機能するのにダウンロードが機能しないのか) について完全に途方に暮れています。関連する場合、ファイルはバケットのサブディレクトリに保存されていますが、クライアントのすべてのキー文字列を更新しました。ご助力ありがとうございます。