Используйте Python Google Storage Client без учетных данных - PullRequest
1 голос
/ 29 марта 2019

Я использую Python Google Storage Client , однако я использую корзину с открытым доступом для чтения / записи.(Я знаю, что это обычно ужасная идея, но у меня есть редкий случай использования, когда это нормально).

Когда я пытаюсь получить некоторые файлы, я получаю DefaultCredentialsError.

BUCKET_NAME = 'my-public-bucket-name'
storage_client = storage.Client()
bucket = storage_client.get_bucket(BUCKET_NAME)

def list_blobs(prefix, delimiter=None):
    blobs = bucket.list_blobs(prefix=prefix, delimiter=delimiter)

    print('Blobs:')
    for blob in blobs:
        print(blob.name)

Конкретная ошибка гласит:

google.auth.exceptions.DefaultCredentialsError: Could not automatically determine credentials. Please set GOOGLE_APPLICATION_CREDENTIALS or explicitly create credentials and re-run the application. For more information, please see https://cloud.google.com/docs/authentication/getting-started

На этой странице предлагается использовать присягу или другие токены, но они мне не нужны, так как мое ведро общедоступно?Я могу сделать HTTP-запрос в корзину в Chrome и получить данные.

Как мне обойти эту проблему?Могу ли я предоставить учетные данные по умолчанию или ноль?

1 Ответ

1 голос
/ 29 марта 2019

Из " Аутентификация в облачном хранилище ":

Большинство операций, выполняемых в облачном хранилище, должны проходить проверку подлинности. Единственными исключениями являются операции над объектами, которые разрешают анонимный доступ. Объекты доступны анонимно, если группа allUsers имеет разрешение READ. В группу allUsers входит кто угодно в Интернете.

...