我按照此页面上的教程HERE 但是当我试图获得一张重新调整大小的图片时,我得到一个“拒绝访问”
好:https://xxxx.amazonaws.com/mybucket/test.jpg
错误:https://xxxx.amazonaws.com/mybucket/300x300/test.jpg(拒绝访问)
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
</Error>
在我的设置下方:
Bucket策略编辑器
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
}
]
}
当我创建触发器时,我选择了Security:OPEN。我对 YOUR_API_HOSTNAME_HERE 感到困惑。在示例中,api主机名是h3ll0w0rld?
答案 0 :(得分:3)
GetObject操作是不够的。您应该授予lambda权限以列出内容。另请注意我提出的Resources
部分。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:List*"
],
"Principal": { "Service": "lambda.amazonaws.com" },
"Resource": [
"arn:aws:s3:::mybucket/*",
"arn:aws:s3:::mybucket"
]
}
]
}
答案 1 :(得分:1)
@AbdennourTOUMI你是对的。 “桶政策”必须是:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucketNAME/*"
}
]
}
答案 2 :(得分:0)
您确定您的存储桶包含包含该文件的300x300文件夹。因为,正如@ Michael-sqlbot所说,它可以表明该文件不存在。 是的,在示例中,api主机名是h3ll0w0rld.execute-api.us-west-2.amazonaws.com。 要获得已调整大小的图片,您需要使用静态网站托管端点 - http://bucket_name.s3-website-us-west-2.amazonaws.com/300x300/test.jpg 然后在你的桶中创建一个300x300的文件夹,其中包含&#39; test.jpg&#39;