ObjectAcl管理
更新时间:2025-07-04
描述: Object ACL管理命令允许用户对指定Object或符合指定Prefix条件的Objects执行设置、追加、获取或删除ACL规则。
命令格式:
Plain Text
1 bcecmd bos object-acl <BOS_PATH> --method METHOD [--acl-config-file ACL-CONFIG-FILE] [--canned CANNED] [--grant-read GRANT-READ] [--grant-full-control GRANT-FULL-CONTROL] [--recursive]
说明:
<BOS_PATH>
指定BOS路径,格式为:bos:/BUCKET_NAME/OBJECT_KEY。
--method
指定Object ACL操作的类型,包括以下4种:
put
: 设置新的ACL配置,已有的ACL配置将被覆盖。append
: 追加新的ACL配置,并保留已有的ACL配置,只支持--acl-config-file
方式提供的ACL配置。get
: 获取指定object或前缀的ACL配置。delete
: 删除指定object或前缀的所有标签配置。acl-config-file
指定ACL配置文件,配置文件格式参考 ACL配置文件。canned
设置 CannedACL,当前支持的CannedAcl包括 private(私有)和 public-read(公共读)。grant-read
为指定用户授予指定Object的读权限,传参示例:'user_id_A,user_id_B'
。grant-full-control
为指定用户授予指定Object的FULL_CONTROL权限,传参示例:'user_id_A,user_id_B'
。--recursive
使用该参数时,命令将为所有匹配<BOS_PATH>前缀的Object设置标签。否则只为指定Object设置标签。**acl-config-file
,canned
,grant-read
和grant-full-control
同时只支持一种提供ACL配置的方式。
设置Object ACL
示例:
-
通过配置文件上传对象ACL配置 操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1/object1 --method put --acl-config-file acl-config.json
返回示例:
Plain Text1success put object acl: prefix1/object1. 2[1] objects of put-ACL on remote.
ACL配置文件示例1:采用json array的格式指定一条或多条ACL规则。
Plain Text1[ 2 { 3 "grantee": [ 4 { 5 "id": "b13a56d27878788766e4989989212" 6 } 7 ], 8 "permission": [ 9 "READ" 10 ] 11 }, 12 { 13 "grantee": [ 14 { 15 "id": "c89d235665666655f478823567981" 16 } 17 ], 18 "permission": [ 19 "READ" 20 ] 21 }, 22 ...... 23]
ACL配置文件示例2:采用一般json格式指定需要追加的ACL规则。
Plain Text1{ 2 "accessControlList": [ 3 { 4 "grantee": [ 5 { 6 "id": "e13b12d213213213232323f492323" 7 } 8 ], 9 "permission": [ 10 "FULL_CONTROL" 11 ] 12 }, 13 { 14 "grantee": [ 15 { 16 "id": "e56d577879621c56a577879677765" 17 } 18 ], 19 "permission": [ 20 "READ" 21 ] 22 } 23 ] 24}
-
指定用户ID授予指定Object的读权限
操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1/object1 --method put --grant-read 'e56d577879621c56a577879677765,c13b12d213213213232323f492323'
返回示例:
Plain Text1success put object acl: prefix1/object1. 2[1] objects of put-ACL on remote.
-
指定用户ID授予指定Object的FULL_CONTROL权限
操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1/object1 --method put --grant-full-control 'e56d577879621c56a577879677765,c13b12d213213213232323f492323'
返回示例:
Plain Text1success put object acl: prefix1/object1. 2[1] objects of put-ACL on remote.
-
批量设置ACL配置
操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1 --method put --acl-config-file acl-config.json --recursive
返回示例:
Plain Text1success put object acl: prefix1/object1. 2success put object acl: prefix1/object2. 3success put object acl: prefix1/object3. 4[3] objects of put-ACL on remote.
追加Object ACL
示例:
-
通过配置文件上传对象ACL配置 操作示例:
Plain Text1$ bcecmd bos object-ACL bos:/bucket1/prefix1/object1 --method append --acl-config-file acl-config.json
返回示例:
Plain Text1success append object acl: prefix1/object1. 2[1] objects of append-ACL on remote.
ACL配置文件示例与设置Object ACL中的ACL配置文件示例相同。
-
批量设置ACL配置
操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1 --method put --acl-config-file acl-config.json --recursive
返回示例:
Plain Text1success append object acl: prefix1/object1. 2success append object acl: prefix1/object2. 3success append object acl: prefix1/object3. 4[3] objects of put-ACL on remote.
获取Object ACl
示例:
-
获取指定Object的ACL配置 操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1/object1 --method get
返回示例:
Plain Text1prefix1/object1 &{AccessControlList:[{Grantee:[{Id:3a39e5e346bb451287df8a4cf950c1b5}] Permission:[FULL_CONTROL] Resource:[] NotResource:[] Condition:{IpAddress:[] Referer:{StringLike:[] StringEquals:[]} VpcId:[]} Effect:}]} 2[1] objects of get-ACL on remote.
-
批量获取对象ACL配置
操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1 --method get --recursive
返回示例:
Plain Text1prefix1/object1 &{AccessControlList:[{Grantee:[{Id:3a39e5e346bb451287df8a4cf950c1b5}] Permission:[FULL_CONTROL] Resource:[] NotResource:[] Condition:{IpAddress:[] Referer:{StringLike:[] StringEquals:[]} VpcId:[]} Effect:}]} 2prefix1/object2 &{AccessControlList:[{Grantee:[{Id:3a39e5e346bb451287df8a4cf950c1b5}] Permission:[FULL_CONTROL] Resource:[] NotResource:[] Condition:{IpAddress:[] Referer:{StringLike:[] StringEquals:[]} VpcId:[]} Effect:}]} 3prefix1/object3 &{AccessControlList:[{Grantee:[{Id:3a39e5e346bb451287df8a4cf950c1b5}] Permission:[FULL_CONTROL] Resource:[] NotResource:[] Condition:{IpAddress:[] Referer:{StringLike:[] StringEquals:[]} VpcId:[]} Effect:}]} 4[3] objects of get-ACL on remote.
删除Object ACL
示例:
-
删除指定object的ACL配置 操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1/object1 --method delete
返回示例:
Plain Text1success delete object acl: prefix1/object1. 2[1] objects of delete-ACL on remote.
-
批量获取对象标签
操作示例:
Plain Text1$ bcecmd bos object-acl bos:/bucket1/prefix1 --method delete --recursive
返回示例:
Plain Text1success delete object acl: prefix1/object1. 2success delete object acl: prefix1/object2. 3success delete object acl: prefix1/object3. 4[3] objects of delete-ACL on remote.