我在Google云端存储上创建了一个可公开列出的存储桶。如果尝试在浏览器中列出存储桶对象,则可以看到所有键。我试图使用create_anonymous_client()
函数,以便可以在python脚本中列出存储桶键。这给了我一个例外。我四处张望,但仍然找不到使用该功能的正确方法。
from google.cloud import storage
client = storage.Client.create_anonymous_client()
a = client.lookup_bucket('publically_listable_bucket')
a.list_blobs()
我得到的异常:
ValueError: Anonymous credentials cannot be refreshed.
其他查询:我可以使用boto3
列出和下载公共Google云存储桶的内容吗,如果可以,该如何匿名进行?
答案 0 :(得分:1)
我当时还在努力工作,在网上找不到任何答案。事实证明,您只能使用bucket()方法访问存储桶。
我不确定为什么,但是这种方法有时可能需要几秒钟。
client = storage.Client.create_anonymous_client()
bucket = client.bucket('publically_listable_bucket')
blobs = list(bucket.list_blobs())
答案 1 :(得分:0)
此错误表示您尝试列出的存储桶未授予正确的权限。您必须将“ Storage Object Viewer”或“ Storage Legacy Bucket Reader”角色赋予“ allUsers”。