我尝试使用ajax请求将所有图像文件放入s3存储桶的子文件夹中。
我已使用下拉菜单公开子文件夹(请参阅图片),但仍然收到403 (Forbidden)
响应。我还尝试为该特定文件夹添加存储桶策略,但仍然没有运气。
我是否应该以权限方式做任何我失踪的事情?我本以为会让子文件夹公开完成这项工作。
这是我的通话代码,如果有帮助:
var imgUrl = "http://s3.amazonaws.com/[BUCKET NAME]/images/gallery";
var loadedImages;
var imgData = {
images: []
}
$.ajax({
url: imgUrl,
success: function getData(data) {
$(data).find("a").attr("href", function(i, val) {
if (val.match(/\.(jpe?g|png|gif)$/)) {
loadedImages = $(this).attr("href"),
imgData.images.push($(loadedImages));
console.log(imgData)
}
});
}
});
编辑:这是我的目前许可:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[BUCKET NAME]/*"
},
{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::[BUCKET NAME]/images/gallery/*"
]
}
]
}
答案 0 :(得分:0)
请分享您的存储桶策略,或者如果您需要提供公共读取权限以更新存储桶更新政策:
{
"Version":"2012-10-17",
"Statement":[{
"Sid":"PublicReadGetObject",
"Effect":"Allow",
"Principal": "*",
"Action":["s3:GetObject"],
"Resource":["arn:aws:s3:::example-bucket/foldername/*"
]
}
]
}