如何设置 IAM 权限以允许用户通过 JSON 读取 Google 存储桶中的对象

How Do I Set IAM Permission To allow Users to Read Objects in a Google Storage Bucket via JSON

我有一个简单的 Python 网络应用程序,它代表用户创建一个 Google 云项目。然后它创建一个存储桶,最后通过 JSON API.

上传一个 CSV 文件到存储桶。

我的问题是作业完成后,用户无法访问 CSV 文件,甚至无法将自己的文件上传到存储桶。

我想我必须设置 IAM 权限,但通读了文档我不知道如何设置。

为了能够读取特定文件,您可以使用 ObjectAccessControls insert API 调用在对象级别设置角色:

POST https://storage.googleapis.com/storage/v1/b/__bucket__/o/__object__/acl

__bucket__ 替换为存储桶的名称,将 __object__ 替换为文件的名称。并发送下一个请求体属性:

entity user-email@email.com
role   READER

如果要允许用户覆盖文件,请将 role 属性 更改为 OWNER

如果您希望允许用户将完全不同的文件上传到您的存储桶中,您需要使用 BucketAccessControls insert API 调用,但这可能不是您想要的,因为这将允许用户获得下一个权限:

READERs can get the bucket, though no acl property will be returned, and list the bucket's objects. WRITERs are READERs, and they can insert objects into the bucket and delete the bucket's objects.