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

设置对象ACL

功能说明

设置指定桶中对象的访问权限。

方法定义

ObsClient.setObjectAcl

请求参数

字段名

类型

约束

说明

Bucket

String

必选

桶名。

Key

String

必选

对象名。

RequestDate

String

Date

可选

指定请求时间。

说明:

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

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.PermissionRead},
               {Grantee:{Type:'CanonicalUser',ID:'userid'},Permission:obsClient.enums.PermissionWrite},
               {Grantee:{Type:'Group',URI:obsClient.enums.GroupAllUsers},Permission:obsClient.enums.PermissionWrite},
               {Grantee:{Type:'Group',URI:obsClient.enums.GroupAllUsers},Permission:obsClient.enums.PermissionRead}
       ]
},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);
              }
       }
});