我有一个S3存储桶“mybucket”,其中包含大量文件:
upload1/123.jpg
public/353.jpg
public/123.jpg
upload2/33.jpg
upload3/423.jpg
据我所知,文件夹只是一种便利,反正只是对象。那么是否可以公开所有公共/ *对象而不公开其他公共/ *对象?我怎么能这样做?
编辑: 我已经做了更多的阅读,这样的工作会不会影响其他任何事情?
{
"Id": "Policy1415732583092",
"Statement": [
{
"Sid": "Stmt1415732573054",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::mybucket/public/*",
"Principal": {
"AWS": [
"*"
]
}
}
]
}
答案 0 :(得分:0)
是的,这很好用。您可以将此策略添加到存储桶权限:
{
"Version": "2012-10-17",
"Id": "123",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:**",
"Resource": "arn:aws:s3:::mybucket/public/*"
}
]
}
然后将名为test.html的文件添加到您的公用文件夹和一个私人文件夹中:
<html>
<body>
test
</body>
</html>
然后在s3存储桶上启用静态网络托管,然后在网络浏览器中转到S3端点(对于我在美国标准中,这将是:http://s3.amazonaws.com/mybucket/public/test.html
),您将看到显示的网页,但是如果您尝试通过私人存储桶访问此页面,您将看到它失败。