AWS S3 和 CEPH/Rados Bucket 权限继承
AWS S3 and CEPH / Rados Bucket permission inheritance
我在创建公开可读的存储桶时遇到问题。我在使用 Amazon aws-sdk v 1.60.2
的 CEPH / Rados 商店工作
我创建了一个类似于许多不同教程的存储桶
s3.buckets.create('bucketName', :acl => :public_read)
然后我上传了一些文件,最多 s3.buckets['bucketName']
但是当我进入并查看存储桶的特定权限及其内部对象时,我看到的存储桶具有授予 AllUsers 组的读取权限以及FULL_CONTROL 设置为我创建存储桶的用户。但是,对象不继承匿名读取权限。我需要桶中的对象可以匿名读取。
请注意,我在 运行 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 上传到商店。
不幸的是,策略是继承的,因此虽然可以读取存储桶中的对象列表,但匿名读取权限不会继续上传的项目。
我在创建公开可读的存储桶时遇到问题。我在使用 Amazon aws-sdk v 1.60.2
的 CEPH / Rados 商店工作我创建了一个类似于许多不同教程的存储桶
s3.buckets.create('bucketName', :acl => :public_read)
然后我上传了一些文件,最多 s3.buckets['bucketName']
但是当我进入并查看存储桶的特定权限及其内部对象时,我看到的存储桶具有授予 AllUsers 组的读取权限以及FULL_CONTROL 设置为我创建存储桶的用户。但是,对象不继承匿名读取权限。我需要桶中的对象可以匿名读取。
请注意,我在 运行 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 上传到商店。
不幸的是,策略是继承的,因此虽然可以读取存储桶中的对象列表,但匿名读取权限不会继续上传的项目。