AWS S3和CEPH / Rados Bucket权限继承

时间:2015-08-19 18:35:48

标签: ruby amazon-s3 bosh ceph radosgw

我在创建公开可读的存储桶时遇到问题。我正在使用亚马逊aws-sdk v 1.60.2在CEPH / Rados商店工作

我使用

创建了一个类似于许多不同教程的存储桶
s3.buckets.create('bucketName', :acl => :public_read)

然后我上传了许多文件,直至s3.buckets['bucketName']但是当我进入并查看存储桶的特定权限时,我看到的存储桶具有授予AllUsers组和FULL_CONTROL集的READ权限。给用户我创建了一个桶。但是,对象不会继承匿名读取权限。我需要匿名读取存储桶中的对象。

作为备注,我在运行s3.buckets['bucketName'].acl时会看到这些权限。当我尝试运行s3.buckets['bucketName'].policy时,我收到以下错误:

/var/lib/gems/1.9.1/gems/json-1.8.3/lib/json/common.rb:155:in `parse': 757: unexpected token at '<?xml version="1.0" encoding="UTF-8"?><ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><Name>erik.test</Name><Prefix></Prefix><Marker></Marker><MaxKeys>1000</MaxKeys><IsTruncated>false</IsTruncated></ListBucketResult>' (JSON::ParserError)
    from /var/lib/gems/1.9.1/gems/json-1.8.3/lib/json/common.rb:155:in `parse'
    from /var/lib/gems/1.9.1/gems/aws-sdk-v1-1.60.2/lib/aws/core/policy.rb:146:in `from_json'
    from /var/lib/gems/1.9.1/gems/aws-sdk-v1-1.60.2/lib/aws/s3/bucket.rb:621:in `policy'
    from test.rb:20:in `<main>'

上面的错误看起来像aws-sdk在一个不应该发生的XML字符串上调用json解析器。

我不能简单地上传具有显式权限的对象,因为我的项目会自动将BOSH上传到商店。

1 个答案:

答案 0 :(得分:1)

不幸的是,策略是继承的,因此虽然可以读取存储桶中的对象列表,但是对于上传的项目,匿名读取权限不会继续。

http://ceph.com/docs/master/radosgw/s3/