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

Google api 如何设置IAM权限以允许用户通过JSON读取Google存储桶中的对象,google-api,google-cloud-storage,google-api-python-client,Google Api,Google Cloud Storage,Google Api Python Client,我有一个简单的Python web应用程序,可以代表用户创建一个Google云项目。然后创建一个存储桶,最后通过JSON API将CSV文件上传到存储桶 我的问题是,作业完成后,用户无法访问CSV文件,甚至无法将自己的文件上载到存储桶 我想我必须设置IAM权限,但阅读文档时我无法确定如何设置。为了能够读取特定文件,您可以使用ObjectAccessControls insert调用在对象级别设置角色: 将\uuuu bucket\uuuu替换为bucket的名称,将\uuuu object\uu

我有一个简单的Python web应用程序,可以代表用户创建一个Google云项目。然后创建一个存储桶,最后通过JSON API将CSV文件上传到存储桶

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


我想我必须设置IAM权限,但阅读文档时我无法确定如何设置。

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

\uuuu bucket\uuuu
替换为bucket的名称,将
\uuuu object\uuuu
替换为文件的名称。并发送下一个请求正文属性:

entity user-email@email.com
role   READER
如果要允许用户覆盖文件,请将
角色
属性更改为
所有者

如果您想允许用户将完全不同的文件上载到您的bucket中,则需要使用
BucketAccessControls insert
调用,在bucket级别将
角色
设置为
WRITER
,但这可能不是您想要的,因为这将允许用户获得下一个权限:

读卡器可以获取bucket,但不会返回任何acl属性,并列出bucket的对象。 写入程序是读卡器,它们可以将对象插入到bucket中并删除bucket的对象


你能描述一下用户只能访问他的文件还是所有文件吗?用户是否有Google帐户?最后,您是否记录(例如在数据库中)用户上载的文件?
entity user-email@email.com
role   READER