使用没有凭据的Python Google Storage Client

时间:2019-03-29 16:02:08

标签: python google-cloud-platform google-cloud-storage bucket

我正在使用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

该页面建议使用Oath或其他令牌,但是由于我的存储桶是公开的,我不需要这些令牌吗?我可以向Chrome中的存储桶发出HTTP请求并接收数据。

如何解决此问题?我可以提供默认或空凭据吗?

1 个答案:

答案 0 :(得分:1)

来自“ Cloud Storage Authentication”:

  

您必须对在Cloud Storage中执行的大多数操作进行身份验证。唯一的例外是对允许匿名访问的对象的操作。如果allUsers组具有READ权限,则可以匿名访问对象。 allUsers组包括Internet上的任何人。