【问题标题】:How to check whether a bucket exists in GCS with python如何使用python检查GCS中是否存在存储桶
【发布时间】:2020-06-30 06:35:35
【问题描述】:

代码:

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)

如果存储桶存在,我想做 client.get_bucket。如何检查bucket是否存在?

【问题讨论】:

  • 看来你已经有代码在检查这个了。我假设它没有按预期工作。您收到错误消息吗?条件永远不会被触发吗?或者这是否旨在作为无法编译的伪代码?

标签: python google-cloud-platform gcloud


【解决方案1】:

以下对我有用(重复使用有问题的参数):

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

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

【讨论】:

    【解决方案2】:

    另一个不使用 try: except 的选项是:

    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)
    

    【讨论】:

      【解决方案3】:

      你可以这样使用:

      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
      
      

      【讨论】:

        【解决方案4】:

        没有方法可以检查存储桶是否存在,但是如果您尝试访问不存在的存储桶,则会收到错误消息。

        我建议您使用 storage_client.list_buckets() 列出项目中的存储桶,然后使用响应来确认存储桶是否存在于您的代码中,或者您是否希望在项目中的每个存储桶中执行 client.get_bucket ,您可以直接遍历响应。

        希望这些信息对您有用

        【讨论】:

        猜你喜欢
        • 2021-06-01
        • 1970-01-01
        • 2015-06-04
        • 2015-07-27
        • 2015-09-13
        • 2020-11-06
        • 2013-09-06
        • 2020-09-17
        • 1970-01-01
        相关资源
        最近更新 更多