Riak CS public 新对象的默认 ACL
Riak CS public ACL by default for new objects
是否可以让 Riak CS 在创建新存储桶或某个存储桶中的文件时默认应用具有 public 访问权限的 ACL?我的意思是我想简单地使用
来放置文件
s3cmd put file.jpg s3://my-bucket
而且我希望 file.jpg 在我的存储桶中 public 可访问。
你的意思是 "objects are anonymously readable" 通过“public
access”?我会继续假设它是真的。
因为ACL是per bucket或者per object的,bucket policy会比较多
适用于用例。创建存储桶 my-bucket
后,一个
可以通过 PUT Bucket Policy API [1].
设置特定的桶策略
允许 public 访问存储桶的示例策略 JSON 如下所示:
{
"Version": "2008-10-17",
"Id": "Policy1355283297687",
"Statement": [
{
"Sid": "Stmt1355283289",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": { "AWS": ["*"] }
}
]
}
然后你可以用适当的 URL 作为 API doc [1] 以任何方式放置它,
一种简单的方法是使用 s3cmd
作为
s3cmd setpolicy </path/to/above/json/as/file> s3://my-bucket
那么写在桶下的每个对象都可以被任何用户访问
包括匿名的。
很遗憾,无法在创建时应用此类存储桶策略
桶,但我希望编写包装脚本并不难
创建存储桶并对其应用策略。
[1] http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html
是否可以让 Riak CS 在创建新存储桶或某个存储桶中的文件时默认应用具有 public 访问权限的 ACL?我的意思是我想简单地使用
来放置文件s3cmd put file.jpg s3://my-bucket
而且我希望 file.jpg 在我的存储桶中 public 可访问。
你的意思是 "objects are anonymously readable" 通过“public access”?我会继续假设它是真的。
因为ACL是per bucket或者per object的,bucket policy会比较多
适用于用例。创建存储桶 my-bucket
后,一个
可以通过 PUT Bucket Policy API [1].
允许 public 访问存储桶的示例策略 JSON 如下所示:
{
"Version": "2008-10-17",
"Id": "Policy1355283297687",
"Statement": [
{
"Sid": "Stmt1355283289",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::my-bucket/*",
"Principal": { "AWS": ["*"] }
}
]
}
然后你可以用适当的 URL 作为 API doc [1] 以任何方式放置它,
一种简单的方法是使用 s3cmd
作为
s3cmd setpolicy </path/to/above/json/as/file> s3://my-bucket
那么写在桶下的每个对象都可以被任何用户访问 包括匿名的。
很遗憾,无法在创建时应用此类存储桶策略 桶,但我希望编写包装脚本并不难 创建存储桶并对其应用策略。
[1] http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html