默认情况下,Riak CS公共ACL用于新对象

时间:2015-08-06 10:28:20

标签: riak riak-cs

在创建某个存储桶中的新存储桶或文件时,是否可以使Riak CS默认应用具有公共访问权限的ACL?我的意思是我想简单地使用

来放置文件
s3cmd put file.jpg s3://my-bucket

我希望将文件中的file.jpg公开访问。

1 个答案:

答案 0 :(得分:0)

你的意思是"对象是匿名可读的"通过"公众 接入&#34 ;?我将继续假设这是真的。

因为ACL是每桶或每个对象,所以存储桶策略会更多 适合用例。创建存储桶my-bucket后,一个 可以通过PUT Bucket Policy API [1]设置特定的存储桶策略。

允许公共访问存储桶的示例策略JSON如下所示:

{
    "Version": "2008-10-17",
    "Id": "Policy1355283297687",
    "Statement": [
        {
            "Sid": "Stmt1355283289",
            "Action": [
                "s3:GetObject"
            ],
            "Effect": "Allow",
            "Resource": "arn:aws:s3:::my-bucket/*",
            "Principal": { "AWS": ["*"] }
        }
    ]
}

然后你可以用任何方法将它作为API doc [1]用适当的URL输出, 一种简单的方法是使用s3cmd作为

s3cmd setpolicy </path/to/above/json/as/file> s3://my-bucket

然后,任何用户都可以访问在桶下编写的每个对象 包括匿名者。

不幸的是,在创建时无法应用此类存储桶策略 但是,我希望,编写包装脚本并不困难 创建存储桶并对其应用策略。

[1] http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html