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

Deleting a bucket in Google Cloud Storage using Python

schedule Aug 11, 2023
Last updated
local_offer
Cloud Computing
Tags
tocTable of Contents
expand_more
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 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:

    pip install --upgrade google-cloud-storage

Deleting bucket in Google Cloud Storage

To delete a bucket that contains some files in Google Cloud Storage using Python, use the bucket's delete(~) method:

from google.cloud import storage

# Authenticate ourselves using the private key of our 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)
# The bucket to delete
bucket = client.get_bucket('test-bucket-skytowner')
bucket.delete(force=True)

Note that by default force=False, which means that the bucket will be deleted only if it is empty. If the bucket contains some files, then an error will be thrown:

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 = client.get_bucket('test-bucket-skytowner')
bucket.delete()
Conflict: 409 DELETE https://storage.googleapis.com/storage/v1/b/test-bucket-skytowner?prettyPrint=false:
The bucket you tried to delete is not empty.

By setting force=True, all the files in the bucket will be deleted first, and then the bucket will be deleted.

WARNING

Even with the argument force=True, if the bucket contains more than 256 files, then GCS will not delete any files, let alone the bucket. This is because GCS cannot perform long-running operations. The way to delete buckets with more than 256 files is to iterate over all the files in the bucket and delete each file one by one:

blobs = client.list_blobs('test-bucket-skytowner')
for blob in blobs:
print(f'Deleting file {blob.name}')
blob.delete()

# Now that all the files have been deleted, we can delete our empty bucket
bucket = client.get_bucket('test-bucket-skytowner')
bucket.delete()
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
2
thumb_down
0
chat_bubble_outline
0
settings
Enjoy our search
Hit / to insta-search docs and recipes!