Module acl (2.3.0)

Manipulate access control lists that Cloud Storage provides.

Bucket has a getting method that creates an ACL object under the hood, and you can interact with that using acl:

.. literalinclude:: snippets.py :start-after: [START client_bucket_acl] :end-before: [END client_bucket_acl] :dedent: 4

Adding and removing permissions can be done with the following methods (in increasing order of granularity):

  • ACL.all corresponds to access for all users.
  • ACL.all_authenticated corresponds to access for all users that are signed into a Google account.
  • ACL.domain corresponds to access on a per Google Apps domain (ie, example.com).
  • ACL.group corresponds to access on a per group basis (either by ID or e-mail address).
  • ACL.user corresponds to access on a per user basis (either by ID or e-mail address).

And you are able to grant and revoke the following roles:

  • Reading: _ACLEntity.grant_read and _ACLEntity.revoke_read
  • Writing: _ACLEntity.grant_write and _ACLEntity.revoke_write
  • Owning: _ACLEntity.grant_owner and _ACLEntity.revoke_owner

You can use any of these like any other factory method (these happen to be _ACLEntity factories):

.. literalinclude:: snippets.py :start-after: [START acl_user_settings] :end-before: [END acl_user_settings] :dedent: 4

After that, you can save any changes you make with the save method:

.. literalinclude:: snippets.py :start-after: [START acl_save] :end-before: [END acl_save] :dedent: 4

You can alternatively save any existing ACL object (whether it was created by a factory method or not) from a Bucket:

.. literalinclude:: snippets.py :start-after: [START acl_save_bucket] :end-before: [END acl_save_bucket] :dedent: 4

To get the list of entity and role for each unique pair, the ACL class is iterable:

.. literalinclude:: snippets.py :start-after: [START acl_print] :end-before: [END acl_print] :dedent: 4

This list of tuples can be used as the entity and role fields when sending metadata for ACLs to the API.

Classes

ACL

ACL()

Container class representing a list of access controls.

BucketACL

BucketACL(bucket)

An ACL specifically for a bucket.

Parameter
Name Description
bucket Bucket

The bucket to which this ACL relates.

DefaultObjectACL

DefaultObjectACL(bucket)

A class representing the default object ACL for a bucket.

ObjectACL

ObjectACL(blob)

An ACL specifically for a Cloud Storage object / blob.

Parameter
Name Description
blob Blob

The blob that this ACL corresponds to.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年10月10日 UTC.