Google云存储仅删除自己的对象

我有一个存储桶,多个服务帐户可以在其中上载其对象,以便它们将storage.objects.create和ACL设置为projectPrivate。但我希望他们能够仅覆盖(删除)他们上传的对象,因此它们不会覆盖其他人的对象。所有对象都必须为所有人可读。但是,如果我给他们提供storage.objects.delete,它们可以覆盖此存储桶中的所有对象。

我可以设置一些权限,以便他们只能删除自己是创作者的项目吗?

p82591942 回答:Google云存储仅删除自己的对象

根据GCP documentation

  

覆盖对象,执行覆盖的人(   通过这样做获得对象的所有权)必须具有WRITER或OWNER   在存储桶上上传对象的权限。

由于对存储桶具有 writer owner 权限将授予对存储桶中其他文件的访问权限,因此您担心的不是可能。

但是,您可以为不同的服务帐户使用不同的存储桶。

,

如果我们查看此处找到的文档:

https://cloud.google.com/storage/docs/access-control/lists#predefined-acl

我们发现ACL projectPrivate根据其角色向user / serviceAccount授予权限。但是,还有一个名为private的备用ACL,记录为:

  

为存储桶或对象授予存储桶或对象所有者OWNER权限   对象,并删除所有其他访问权限。

如果我正确阅读了此内容,听起来就像您想要的一样。尤其是删除所有其他访问权限的概念,我指的是它删除了其他用户的所有其他访问权限。

,

很好的问题。我认为这会对您有所帮助。

有一个叫做默认对象ACL的东西

  

默认情况下,对某文件拥有OWNER权限或WRITER权限的任何人   存储桶可以将对象上传到该存储桶。当您上传对象时,   您可以提供预定义的ACL,也可以完全不指定ACL。如果你   不指定ACL,云存储将应用存储桶的默认值   对象到对象的ACL。 每个存储桶都有一个默认的对象ACL ,   并且此ACL适用于所有上传到该存储桶的对象,而无需   预定义ACL或在请求中指定的ACL(仅JSON API)。   每个存储桶的默认对象ACL的初始值为   projectPrivate。

根据对象的上传方式,相应地应用对象ACL:

经过验证的上传

如果您提出了上载对象的经过身份验证的请求,并且在上载对象时未指定任何对象ACL,则您将被列为对象的所有者,并且默认情况下将预定义的projectPrivate ACL应用于该对象。这意味着:

  • 您(上传对象的人)被列为对象 所有者。不能通过修改ACL来更改对象所有权。您可以 只能通过覆盖对象来更改对象所有权。
  • 您(对象所有者)被授予对对象的所有者权限。如果 您尝试向所有者Cloud授予少于OWNER的权限 存储会自动将权限升级为OWNER。
  • 项目所有者和项目编辑者组对拥有OWNER权限 对象。
  • 项目团队成员组对该对象具有READER权限。

    来源和更多信息:Click here
本文链接:https://www.f2er.com/3101969.html

大家都在问