Как вы ловите исключение с 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))