允许在 GCS 和 S3 的存储桶中创建但不允许覆盖或删除对象
Allow Creating but not Overriding or Deleting Objects in a bucket in GCS and S3
有没有办法允许创建新对象但不允许删除或覆盖存储桶中的其他现有对象?
我想在不维护后端或签名 URL 的情况下实现此目的。如果有办法通过对象默认 ACL 和存储桶 ACL 来做到这一点。
设置桶 ACL 以允许 WRITING
来自 allUsers
似乎允许他们删除和覆盖,我希望他们只能创建新对象。
注意:我也非常感谢对 S3 的回答。
不,没有。现在,object 的上传者是 object 的所有者,object 的所有者始终有权删除自己的 object。您可以防止一组用户覆盖彼此的 object,但您目前无法阻止用户覆盖他们之前上传的 object。
请注意,这完全是 ACL 的问题。不希望覆盖现有 object 的用户可以确保他们不会。如果使用 XML API,用户会在他们的上传请求中包含 header "x-goog-if-generation-match: 0",这将导致他们的上传失败,如果 object名称已存在。
有没有办法允许创建新对象但不允许删除或覆盖存储桶中的其他现有对象?
我想在不维护后端或签名 URL 的情况下实现此目的。如果有办法通过对象默认 ACL 和存储桶 ACL 来做到这一点。
设置桶 ACL 以允许 WRITING
来自 allUsers
似乎允许他们删除和覆盖,我希望他们只能创建新对象。
注意:我也非常感谢对 S3 的回答。
不,没有。现在,object 的上传者是 object 的所有者,object 的所有者始终有权删除自己的 object。您可以防止一组用户覆盖彼此的 object,但您目前无法阻止用户覆盖他们之前上传的 object。
请注意,这完全是 ACL 的问题。不希望覆盖现有 object 的用户可以确保他们不会。如果使用 XML API,用户会在他们的上传请求中包含 header "x-goog-if-generation-match: 0",这将导致他们的上传失败,如果 object名称已存在。