Object权限控制
更新时间:2022-10-14
设置Object的访问权限
如下代码将Object的权限设置为了private:
client.set_object_canned_acl(bucket_name, object_name, Http::BCE_ACL => 'private')
关于权限的具体内容可以参考《BOS API文档 Object权限控制》。
设置指定用户对Object的访问权限
BOS提供set_object_acl
方法和set_object_canned_acl
方法来实现指定用户Object的访问权限设置,可以参考如下代码实现:
-
通过
set_object_canned_acl
的x-bce-grant-read
和x-bce-grant-full-control
设置指定用户的访问权限id_permission = "id=\"8c47a952db4444c5a097b41be3f24c94\",id=\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\"" client.set_object_canned_acl(bucket_name, object_name, 'x-bce-grant-read' => id_permission) id_permission = "id=\"8c47a952db4444c5a097b41be3f24c94\",id=\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\"" client.set_object_canned_acl(bucket_name, object_name, 'x-bce-grant-full-control' => id_permission)
-
通过
set_object_acl
设置object访问权限acl = [{'grantee' => [{'id' => 'b124deeaf6f641c9ac27700b41a350a8'}, {'id' => 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'}], 'permission' => ['FULL_CONTROL'] }] client.set_object_acl(bucket_name, object_name, acl)
注意:
- permission中的权限设置包含两个值:
READ
、FULL_CONTROL
,它们分别对应相关权限。- 设置两个以上(含两个)被授权人时,请参考以上示例的格式,若将数组合并会返回报错。
查看Object的权限
如下代码可以查Object的权限:
client.get_object_acl(bucket_name, object_name)
get_object_acl
方法返回的解析类中可供调用的参数有:
参数 | 说明 |
---|---|
accessControlList | 标识Object的权限列表 |
grantee | 标识被授权人 |
-id | 被授权人ID |
permission | 标识被授权人的权限 |
删除Object的权限
如下代码可以删除Object的权限:
client.delete_object_acl(bucket_name, object_name)