Google Cloud Storage

ObjectAccessControls: insert

Creates a new ACL entry on the specified object. Try it now or see an example.

You can create up to 100 ACL entries. The invoking user must have FULL_CONTROL of the object to use this method.


HTTP request



Parameter name Value Description
Path parameters
bucket string Name of a bucket.
object string Name of the object.
Optional query parameters
generation unsigned long If present, selects a specific revision of this object (as opposed to the latest version, the default).

Request body

In the request body, supply an ObjectAccessControls resource with the following properties:

Property name Value Description Notes
Required Properties
entity string The entity holding the permission, in one of the following forms:
  • user-userId
  • user-email
  • group-groupId
  • group-email
  • domain-domain
  • allUsers
  • allAuthenticatedUsers
  • The user would be
  • The group would be
  • To refer to all members of the Google Apps for Business domain, the entity would be
role string The access permission for the entity. Can be READER or OWNER. writable


If successful, this method returns an ObjectAccessControls resource in the response body.


Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).


Uses the Python client library

req = client.objectAccessControls().insert(
        body={'entity': 'allAuthenticatedUsers', 'role': 'READER'})
resp = req.execute()
print json.dumps(resp, indent=2)


Uses the Ruby client library

# Insert object acl
object_acl_insert_result = client.execute(
  api_method: storage.object_access_controls.insert,
  parameters: {bucket: BUCKET, object: OBJECT},
  body_object: {entity: 'allUsers', role: 'READER'}
puts "Inserting object ACL: #{object_acl_insert_result.body}"


Uses the Go client library

// Insert ACL for an object.
bucketName := "BUCKET_NAME"
objectName := "OBJECT_NAME"
// This illustrates the minimum requirements.
objectAcl := &storage.ObjectAccessControl{
	Bucket: bucketName, Entity: "allUsers", Object: objectName, Role: "READER",
result, err := service.ObjectAccessControls.Insert(bucketName, objectName, objectAcl).Do()
fmt.Printf("Result of inserting ACL for %s/%s:\n%v", bucketName, objectName, result)

Try it!

Use the APIs Explorer below to call this method on live data and see the response. Alternatively, try the standalone Explorer.

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.