Как вы ловите исключение с API облачного хранилища Google

Я не могу поймать это исключение, кроме как через все

from google.cloud import storage, exceptions

def gsutil_ls(bucket_name, filter=None, project_id=None):
  try:
    client = storage.Client( project=project_id )
    bucket_path = "gs://{}/".format(bucket_name)
    bucket, err = client.get_bucket(bucket_name)
    files = ["{}{}".format(bucket_path,f.name) for f in bucket.list_blobs() ]
    if filter:
      files = [f for f in files if filter in f]
    # print(files)
    return files
  except exceptions.NotFound:
    raise ValueError("ERROR: GCS bucket not found, path={}".format(bucket_path))
  except Exception as e:
    print( e)



gsutil_ls("my-bucket", project_id="my-project")

возвращает:

400 GET https://www.googleapis.com/storage/v1/b/my-bucket?projection=noAcl: Invalid bucket name: 'my-bucket'

см.: https://googlecloudplatform.github.io/google-cloud-python/latest/storage/client.html

1 ответ

В этом случае для:

400 GET https://www.googleapis.com/storage/v1/b/my-bucket?projection=noAcl: Invalid bucket name: 'my-bucket'

использование exceptions.Forbidden

  try:
     [...]
  except exceptions.Forbidden:
    raise ValueError("ERROR: GCS bucket not found, path={}".format(bucket_path))
Другие вопросы по тегам