search
Search
Login
Unlock 100+ guides
menu
menu
web
search toc
close
Comments
Log in or sign up
Cancel
Post
account_circle
Profile
exit_to_app
Sign out
What does this mean?
Why is this true?
Give me some examples!
search
keyboard_voice
close
Searching Tips
Search for a recipe:
"Creating a table in MySQL"
Search for an API documentation: "@append"
Search for code: "!dataframe"
Apply a tag filter: "#python"
Useful Shortcuts
/ to open search panel
Esc to close search panel
to navigate between search results
d to clear all current filters
Enter to expand content preview
icon_star
Doc Search
icon_star
Code Search Beta
SORRY NOTHING FOUND!
mic
Start speaking...
Voice search is only supported in Safari and Chrome.
Navigate to

Creating a bucket in Google Cloud Storage using Python

schedule Aug 12, 2023
Last updated
local_offer
Cloud Computing
Tags
mode_heat
Master the mathematics behind data science with 100+ top-tier guides
Start your free 7-days trial now!

Prerequisites

To follow along with this guide, please make sure to have:

  • created a GCP project

  • created a service account and downloaded the private key (JSON file) for authentication (please check out my detailed guide)

  • installed the Python client library for Google Cloud Storage (GCS):

    pip install --upgrade google-cloud-storage

Creating a bucket in Google Cloud Storage with default settings

To create a bucket in Google Cloud Storage (GCS), use the create_bucket(~) method:

from google.cloud import storage
# The private JSON key of the service account
path_to_private_key = './gcs-project-354207-099ef6796af6.json'
client = storage.Client.from_service_account_json(json_credentials_path=path_to_private_key)

bucket = client.create_bucket('test-bucket-skytowner')
print(f'Bucket with name [{bucket.name}] created on GCS!')
Bucket with name [test-bucket-skytowner] created on GCS!

Here, create_bucket(~) returns the newly created bucket.

WARNING

If the bucket with the name already exists, then an error will be thrown:

Conflict: 409 POST https://storage.googleapis.com/storage/v1/b?project=gcs-project-354207&prettyPrint=false:
Your previous request to create the named bucket succeeded and you already own it.

Note the following limitations of buckets:

  • bucket names must be globally unique, that is, the name must not clash with any other existing bucket name used by any user in the world

  • the bucket name cannot be changed later.

  • the default storage class is STANDARD and the location type is multi-region (US). These settings also cannot be changed later.

NOTE

Please refer to our GCS guide for a detailed discussion on bucket storages classes and location types.

If we head over to the web console of GCS, then we should see our newly created bucket:

Creating a bucket with custom location type and storage class in Google Cloud Storage

To create a bucket with a custom location type and storage class, create a bucket object first using the Bucket constructor, and then set the location and storage_class properties like so:

from google.cloud import storage

path_to_private_key = './gcs-project-354207-099ef6796af6.json'
client = storage.Client.from_service_account_json(json_credentials_path=path_to_private_key)
bucket = storage.Bucket(client, "my-demo-bucket-skytowner")
bucket.storage_class = "COLDLINE"
bucket = client.create_bucket(bucket, location="europe-west6")

Once running this code, we can confirm on the GCS web console that the newly created bucket has our specified location and storage class:

Note that COLDLINE is a storage class used for infrequently accessed data.

NOTE

For a full list of locations to set up your bucket, please consult the official documentation hereopen_in_new.

robocat
Published by Isshin Inada
Edited by 0 others
Did you find this page useful?
thumb_up
thumb_down
Comment
Citation
Ask a question or leave a feedback...
thumb_up
0
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!