我在创建公开可读的存储桶时遇到问题。我正在使用亚马逊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上传到商店。
答案 0 :(得分:1)
不幸的是,策略是继承的,因此虽然可以读取存储桶中的对象列表,但是对于上传的项目,匿名读取权限不会继续。