Amazon Simple Storage Service (S3)

Amazon S3Driver is a wrapper around Boto 3.

Connecting

Change region from default us-east-1 to us-west-1:

from cloudstorage.drivers.amazon import S3Driver

storage = S3Driver(key='<my-aws-access-key-id>',
                   secret='<my-aws-secret-access-key>',
                   region='us-west-1')
# <Driver: S3 us-west-1>

Regions supported:

  • ap-northeast-1

  • ap-northeast-2

  • ap-south-1

  • ap-southeast-1

  • ap-southeast-2

  • ca-central-1

  • eu-central-1

  • eu-west-1

  • eu-west-2

  • sa-east-1

  • us-east-1

  • us-east-2

  • us-west-1

  • us-west-2

Access Control List (ACL)

By default, all containers and blobs default to private. To change the access control when creating a container or blob, include the acl argument option:

container = storage.create_container('container-public', acl='public-read')
container.cdn_url
# https://s3.amazonaws.com/container-public
container = storage.get_container('container-public')
picture_blob = container.upload_blob('/path/picture.png', acl='public-read')
picture_blob.cdn_url
# https://s3.amazonaws.com/container-public/picture.png

Support ACL values for S3:

  • private

  • public-read

  • public-read-write

  • authenticated-read

  • bucket-owner-read

  • bucket-owner-full-control

  • aws-exec-read

Warning

Updating ACL on an existing container or blob is not currently supported.