【问题标题】:Riak CS public ACL by default for new objectsRiak CS 公共 ACL 默认用于新对象
【发布时间】:2015-10-29 11:04:21
【问题描述】:

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

s3cmd put file.jpg s3://my-bucket

我希望我的存储桶中的 file.jpg 可供公众访问。

【问题讨论】:

    标签: riak riak-cs


    【解决方案1】:

    你的意思是“对象是匿名可读的”由“公共 访问”?我将继续假设它是真的。

    因为 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": ["*"] }
            }
        ]
    }
    

    然后您可以通过任何方式使用正确的 URL 作为 API 文档 [1] 将其放入, 一个简单的方法是使用s3cmd as

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

    那么写在bucket下的每个object都可以被任何用户访问 包括匿名的。

    不幸的是,没有办法在创建时应用这样的存储桶策略 桶,但我希望,编写包装脚本并不难 创建存储桶并对其应用策略。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-01
      • 2019-04-11
      • 2016-11-11
      • 2012-05-27
      • 2011-02-26
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      相关资源
      最近更新 更多