使用 Python API 以最小权限从 Google 云存储中读取
Using the Python API to read from Google Cloud Storage with minimal permissions
我想使用 Python 从存储中下载 blob。示例显示此代码:
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(BUCKETNAME)
blob = bucket.get_blob(BLOBNAME)
raw_bytes = blob.download_as_bytes()
虽然这有效,但它不仅需要授予“存储对象查看者”角色 (roles/storage.objectViewer
) 的 storage.objects.get
权限,还需要 storage.buckets.get
权限才能执行 get_bucket 行。此权限由其他听起来过于强大或过时的角色授予,例如“Storage Admin”或“Storage Legacy Bucket Reader”。
有没有办法更改 Python 代码,以便只需要 storage.objects.get
权限?似乎 JSON API 可能在 Python API 后面允许这样做:https://cloud.google.com/storage/docs/json_api/v1/objects/get
最好的,鲍里斯
示例代码中,bucket语句bucket = client.get_bucket(BUCKETNAME)用于列出bucket操作 .
如果您要输出作为响应获得的值,而不是执行 client.get_bucket,您可以将其作为 静态值 传递。
通过使用静态值,您将不会使用需要 storage.buckets.get 权限的 client.get_bucket 操作。
您也可以参考类似的。
我想使用 Python 从存储中下载 blob。示例显示此代码:
from google.cloud import storage
client = storage.Client()
bucket = client.get_bucket(BUCKETNAME)
blob = bucket.get_blob(BLOBNAME)
raw_bytes = blob.download_as_bytes()
虽然这有效,但它不仅需要授予“存储对象查看者”角色 (roles/storage.objectViewer
) 的 storage.objects.get
权限,还需要 storage.buckets.get
权限才能执行 get_bucket 行。此权限由其他听起来过于强大或过时的角色授予,例如“Storage Admin”或“Storage Legacy Bucket Reader”。
有没有办法更改 Python 代码,以便只需要 storage.objects.get
权限?似乎 JSON API 可能在 Python API 后面允许这样做:https://cloud.google.com/storage/docs/json_api/v1/objects/get
最好的,鲍里斯
示例代码中,bucket语句bucket = client.get_bucket(BUCKETNAME)用于列出bucket操作 .
如果您要输出作为响应获得的值,而不是执行 client.get_bucket,您可以将其作为 静态值 传递。 通过使用静态值,您将不会使用需要 storage.buckets.get 权限的 client.get_bucket 操作。
您也可以参考类似的