设置桶访问权限
您可以使用 put_bucket_acl 接口进行桶访问权限的修改。桶访问权限包含了Canned Accesss Control List 与 Access Control List 两种格式。
- Canned Accesss Control List
Canned Accesss Control List 实际上是包含了一组预定义的被授权人和权限。Canned Accesss Control List 格式的桶访问权限包含了以下几种:
权限 | Ruby SDK对应值 |
---|---|
私有读写 | private |
公共读私有写 | public-read |
公共读写 | public-read-write |
注册用户可读 | authenticated-read |
使用 Canned Accesss Control List 设置桶的访问权限示例代码如下:
def put_bucket_acl1(client, bucket_name, canned_acl)
client.put_bucket_acl(
bucket: bucket_name,
acl: canned_acl
)
puts 'Bucket ACL set.'
rescue StandardError => e
puts "Error setting bucket ACL: #{e.message}"
end
- Access Control List
使用 Access Control List 设置桶访问权限时,可以设置特定用户对桶的访问权限。桶的 Access Control List 权限如下表:
权限 | Ruby SDK对应的参数 |
---|---|
可读,可列出桶下的对象。 | grant_read |
可写,可创建/删除/覆盖写该桶下的对象。 | grant_write |
可读取桶的acl规则。 | grant_read_acp |
可修改桶的acl规则。 | grant_write_acp |
完全权限。拥有以上所有权限。 | grant_full_control |
使用 Accesss Control List 设置桶的访问权限示例代码如下:
def put_bucket_acl2(client, bucket_name)
client.put_bucket_acl(
bucket: bucket_name,
grant_full_control: 'id=test-user-id' # 开启id为test-user-id用户的完全控制权限
)
puts 'Bucket ACL set.'
rescue StandardError => e
puts "Error setting bucket ACL: #{e.message}"
end