设置桶访问权限

您可以使用 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