Setting Object ACL

API Description

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

Method Definition

ObsClient.setObjectAcl(bucketName, objectKey, acl, versionId, aclControl)

Request Parameters

Field

Type

Optional or Mandatory

Description

bucketName

str

Mandatory

Bucket name

objectKey

str

Mandatory

Object name

acl

ACL

Optional

Object ACL

versionId

str

Optional

Object version ID

aclControl

str

Optional

Pre-defined Access Control Policies

acl and aclControl are mutually exclusive.

Returned Results

Type

Description

GetResult

SDK common result object

Sample Code

try:
    from obs import ACL 
    from obs import Owner 
    from obs import Grant, Permission 
    from obs import Grantee, Group 
    owner = Owner(owner_id='ownerid') 
     
    grantee = Grantee(grantee_id='userid') 
    grant0 = Grant(grantee=grantee, permission=Permission.READ)  
    grant0 = Grant(grantee=grantee, permission=Permission.WRITE)  
     
    grant1 = Grant(grantee=Grantee(group=Group.ALL_USERS), permission=Permission.READ)  
     
    grant2 = Grant(grantee=Grantee(group=Group.ALL_USERS), permission=Permission.WRITE)  
     
    acl = ACL(owner=owner, grants=[grant0, grant1, grant2]) 
     
    resp = obsClient.setObjectAcl('bucketname', 'objectkey', acl=acl) 
    if resp.status < 300: 
        print('requestId:', resp.requestId) 
    else: 
        print('errorCode:', resp.errorCode) 
        print('errorMessage:', resp.errorMessage)
except:
    import traceback
    print(traceback.format_exc())