更新时间:2025-12-04 GMT+08:00
分享

设置桶ACL

功能说明

设置桶的访问权限。

方法定义

ObsClient.setBucketAcl

请求参数

字段名

类型

约束

说明

Bucket

String

必选

桶名。

RequestDate

String

Date

可选

指定请求时间。

说明:

当为String类型时,必须符合ISO8601或RFC822规范。

ACL

String

可选

预定义访问策略

Owner

Object

可选

桶的所有者。

-

ID

String

必选

桶所有者的DomainId。

Grants

Array

可选

被授权用户权限信息列表。

-

Grantee

Object

必选

被授权用户。

-

Type

String

必选

被授权的用户类型

ID

String

如果Type为“CanonicalUser”则必选,否则必须为空

被授权用户的DomainId。

URI

String

如果Type为“Group”则必选,否则必须为空

被授权的用户组

Permission

String

必选

被授予的权限

Delivered

Boolean

可选

桶内对象ACL是否继承桶的ACL。

  • Owner和Grants必须配套使用,且与ACL互斥。当设置了这两个字段时,不能设置ACL;反之,当设置了ACL时,不能设置Owner和Grants。
  • Owner、Grants与ACL不能全为空。

返回结果(InterfaceResult)

字段名

类型

说明

RequestId

String

OBS服务端返回的请求ID。

代码样例

obsClient.setBucketAcl ({
       Bucket : 'bucketname',
       Owner:{ID:'ownerid'},
       Grants:[
                  {Grantee:{Type:'CanonicalUser',ID:'userid'},Permission:obsClient.enums.PermissionRead},
                  {Grantee:{Type:'CanonicalUser',ID:'userid'},Permission:obsClient.enums.PermissionWrite},
                  {Grantee:{Type:'Group', URI: obsClient.enums.GroupLogDelivery},Permission: obsClient.enums.PermissionWrite},
                  {Grantee:{Type:'Group', URI: obsClient.enums.GroupLogDelivery},Permission: obsClient.enums.PermissionWriteAcp}
       ]
},function (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);
              }
       }
});

相关文档