• Object Storage Service

obs
  1. Help Center
  2. Object Storage Service
  3. API Reference (Node.js SDK)
  4. Objects-Related APIs
  5. PUT Object acl

PUT Object acl

API Description

You can use this API to set the ACL for an object in a specified bucket.

Method Definition

ObsClient.setObjectAcl(parameter, callback)

Request Parameter

Field

Type

Optional or Mandatory

Description

Bucket

String

Mandatory

Bucket name

Key

String

Mandatory

Object name

VersionId

String

Optional

Object version ID

ACL

String

Optional

Pre-defined access policy. Possible values are:

  • ObsClient.enums.AclPrivate
  • ObsClient.enums.AclPublicRead
  • ObsClient.enums.AclPublicReadWrite
  • ObsClient.enums.AclAuthenticatedRead
  • ObsClient.enums.AclBucketOwnerRead
  • ObsClient.enums.AclBucketOwnerFullControl

Owner

Object

Optional

Object owner

  

ID

String

Mandatory

ID of the domain to which the object owner belongs

Name

String

Optional

Name of the object owner

Grants

Object

Optional

Grantees' ACL information

  

Grant

Array

Mandatory

List of grantees' permission information

  

Grantee

Object

Mandatory

Grantee

  

Type

String

Mandatory

Grantee type. Possible values are:

  • CanonicalUser
  • Group

Name

String

If Type is CanonicalUser, this field is optional. If Type is Group, this field must be null.

Grantee name

ID

String

If Type is CanonicalUser, this field is optional. If Type is Group, this field must be null.

ID of the domain to which the grantee belongs

URI

String

If Type is Group, this field is mandatory. If Type is CanonicalUser, this field must be null.

Grantee group. Possible values are:

  • ObsClient.enums.GroupAllUsers
  • ObsClient.enums.GroupAuthenticatedUsers

Permission

String

Mandatory

Granted permission. Possible values are:

  • ObsClient.enums.PermissionRead
  • ObsClient.enums.PermissionReadAcp
  • ObsClient.enums.PermissionWriteAcp
  • ObsClient.enums.PermissionFullControl
NOTE:
  • Owner and Grants must be used together and they cannot be used with ACL.
  • You must set either the two fields or ACL.

Returned Result (InterfaceResult)

Field

Type

Description

RequestId

String

Request ID returned by the OBS server

Sample Code

obsClient.setObjectAcl({
       Bucket:'bucketname',
       Key : 'objectkey',
       Owner:{ID:'ownerid',Name:'ownername'},
       Grants:{
              Grant:[
                     {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}
           ]
       }
},(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);
              }
       }
});