Bucket权限管理
更新时间:2022-10-14
设置Bucket的访问权限
如下代码将Bucket的权限设置为了private:
Ruby
1client.set_bucket_canned_acl(bucket_name, "private")
canned acl支持三种权限,分别为:private
、public-read
、public-read-write
。关于权限的具体内容可以参考《BOS API文档 使用CannedAcl方式的权限控制》。
设置指定用户对Bucket的访问权限
BOS提供set_bucket_acl方法来实现指定用户对Bucket的访问权限设置,可以参考如下代码实现:
Ruby
1acl = [{'grantee' => [{'id' => 'b124deeaf6f641c9ac27700b41a350a8'},
2 {'id' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}],
3 'permission' => ['FULL_CONTROL']
4}]
5
6client.set_bucket_acl(bucket_name, acl)
注意:
- permission中的权限设置包含三个值:
READ
、WRITE
、FULL_CONTROL
,它们分别对应相关权限。具体内容可以参考《BOS API文档 上传ACL文件方式的权限控制》。- 设置两个以上(含两个)被授权人时,请参考以上示例的格式,若将数组合并会返回报错。
设置更多Bucket访问权限
-
通过设置referer白名单方式设置防盗链
Ruby1acl = [{'grantee' => [{'id' => 'b124deeaf6f641c9ac27700b41a350a8'}, 2 {'id' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}], 3 'permission' => ['FULL_CONTROL'], 4 'condition' => { 5 'referer' => { 6 'stringLike' => ['http://www.abc.com/*'], 7 'stringEquals' => ['http://www.abc.com'] 8 } 9 } 10}] 11 12client.set_bucket_acl(bucket_name, acl)
-
限制客户端IP访问,只允许部分客户端IP访问
Ruby1acl = [{'grantee' => [{'id' => 'b124deeaf6f641c9ac27700b41a350a8'}, 2 {'id' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}], 3 'permission' => ['FULL_CONTROL'], 4 'condition' => { 5 "ipAddress" => [ 6 '192.168.0.0/16', 7 '192.169.0.*', 8 '192.170.0.5' 9 ] 10 } 11}] 12 13client.set_bucket_acl(bucket_name, acl)
设置STS临时token权限
对于通过STS方式创建的临时访问身份,管理员也可进行专门的权限设定。 STS的简介及设置临时权限的方式可参见临时授权访问。
使用BOS Ruby SDK设置STS临时token权限可参考使用STS创建BosClient
查看Bucket的权限
如下代码可以查看Bucket的权限:
Ruby
1client.get_bucket_acl(bucket_name)
get_bucket_acl
方法返回的解析类中可供调用的参数有:
参数 | 说明 |
---|---|
owner | Bucket owner信息 |
id | Bucket owner的用户ID |
acl | 标识Bucket的权限列表 |
grantee | 标识被授权人 |
-id | 被授权人ID |
permission | 标识被授权人的权限 |