Support GS credentials as JSON string if not a JSON file reference

This commit is contained in:
allegroai 2023-11-05 21:01:56 +02:00
parent 4303664d5b
commit e746b3e535

View File

@ -791,10 +791,21 @@ class _GoogleCloudStorageDriver(_Driver):
self.name = name[len(_GoogleCloudStorageDriver.scheme_prefix):] self.name = name[len(_GoogleCloudStorageDriver.scheme_prefix):]
if cfg.credentials_json: if cfg.credentials_json:
# noinspection PyBroadException
try: try:
credentials = service_account.Credentials.from_service_account_file(cfg.credentials_json) credentials = service_account.Credentials.from_service_account_file(cfg.credentials_json)
except ValueError: except Exception:
credentials = None credentials = None
if not credentials:
# noinspection PyBroadException
try:
# Try parsing this as json to support actual json content and not a file path
credentials = service_account.Credentials.from_service_account_info(
json.loads(cfg.credentials_json)
)
except Exception:
pass
else: else:
credentials = None credentials = None