Student
Student

Reputation: 165

How to check whether a bucket exists in GCS with python

Code:

from google.cloud import storage

client = storage.Client()

bucket = ['symbol_wise_nse', 'symbol_wise_final']

for i in bucket:
    if client.get_bucket(i).exists():
        BUCKET = client.get_bucket(i)

if the bucket exists i want to do client.get_bucket. How to check whether the bucket exists or not?

Upvotes: 10

Views: 13558

Answers (4)

user16708459
user16708459

Reputation: 11

The following worked for me (re-using params in question):

from google.cloud import storage
from google.cloud.storage import Bucket

client = storage.Client()
exists = Bucket(client, 'symbol_wise_nse').exists()

Upvotes: 1

Daniel Wyatt
Daniel Wyatt

Reputation: 1151

Another option that doesn't use try: except is:

from google.cloud import storage

client = storage.Client()    

bucket = ['symbol_wise_nse', 'symbol_wise_final']
for i in bucket:
    BUCKET = client.bucket(i)
    if BUCKET.exists():
        BUCKET = client.get_bucket(i)

Upvotes: 12

marian.vladoi
marian.vladoi

Reputation: 8066

You can use something like this:

from google.cloud import storage

client = storage.Client()

buckets = ['symbol_wise_nse', 'symbol_wise_final']

for i in buckets:
  try:
       bucket = client.get_bucket(i)
       print(bucket)
  except:
       pass

Upvotes: 1

rsalinas
rsalinas

Reputation: 1537

There is no method to check if the bucket exists or not, however you will get an error if you try to access a non existent bucket.

I would recommend you to either list the buckets in the project with storage_client.list_buckets() and then use the response to confirm if the bucket exists in your code, or if you wish to perform the client.get_bucket in every bucket in your project, you can just iterate through the response directly.

Hope you find this information useful

Upvotes: 2

Related Questions