设置对象ACL
功能说明
设置指定桶中对象的访问权限。
方法定义
ObsClient.setObjectAcl
请求参数
字段名 |
类型 |
约束 |
说明 |
||
---|---|---|---|---|---|
Bucket |
String |
必选 |
桶名。 |
||
Key |
String |
必选 |
对象名。 |
||
VersionId |
String |
可选 |
对象的版本号。 |
||
ACL |
String |
可选 |
|||
Owner |
Object |
可选 |
对象的所有者。 |
||
ID |
String |
必选 |
对象所有者的DomainId。 |
||
Delivered |
Boolean |
可选 |
桶的ACL是否向桶内对象传递。 |
||
Grants |
Array |
可选 |
被授权用户权限信息列表。 |
||
Grantee |
Object |
必选 |
被授权用户。 |
||
Type |
String |
必选 |
被授权的用户类型。 |
||
ID |
String |
如果Type为“CanonicalUser”则必选,否则必须为空 |
被授权用户的DomainId。 |
||
URI |
String |
如果Type为“Group”则必选,否则必须为空 |
被授权的用户组。 |
||
Permission |
String |
必选 |
被授予的权限。 |
- Owner和Grants必须配套使用,且与ACL互斥。当设置了这两个字段时,不能设置ACL;反之,当设置了ACL时,不能设置Owner和Grants。
- Owner、Grants与ACL不能全为空。
返回结果(InterfaceResult)
字段名 |
类型 |
说明 |
---|---|---|
RequestId |
String |
OBS服务端返回的请求ID。 |
代码样例
obsClient.setObjectAcl({ Bucket:'bucketname', Key : 'objectkey', // 设置对象所有者 Owner:{ID:'ownerid'}, Grants:[ // 为指定用户设置完全控制权限 { Grantee: { Type: 'CanonicalUser',ID: 'userid' }, Permission: obsClient.enums.PermissionFullControl }, // 为所有用户设置读权限 { Grantee: { Type: 'Group', URI: obsClient.enums.GroupAllUsers }, Permission: obsClient.enums.PermissionRead }, ] },(err, result) => { if(err){ console.error('Error-->' + err); }else{ if(result.CommonMsg.Status < 300){ console.log('RequestId-->' + result.InterfaceResult.RequestId); }else{ console.log('Code-->' + result.CommonMsg.Code); console.log('Message-->' + result.CommonMsg.Message); } } });
- 使用Owner参数指定对象的所有者信息;使用Grants参数指定被授权的用户信息。
- ACL中需要填写的所有者(Owner)或者被授权用户(Grantee)的ID,是指用户的帐户ID,可通过OBS控制台“我的凭证”页面查看。
- 当前OBS对象支持的可被授权的用户组为:
- 所有用户:ObsClient.enums.GroupAllUsers