用于防止对象更新的 AWS S3 存储桶策略

AWS S3 Bucket policy to prevent Object updates

我在一个 S3 存储桶中有一组对象,它们都有一个共同的前缀。我想防止更新 当前存在的对象,但允许用户在同一前缀中添加新对象

据我了解,S3:PutObject 操作既用于更新现有对象又用于创建新对象。

是否有可以限制更新但允许创建的存储桶策略?

例如:禁止修改已经存在的 s3:/bucket/Input/obj1,但允许创建 s3:/bucket/Input/obj2


编辑,上下文:我们使用 S3 作为回归测试数据的存储,用于测试我们的转换。随着我们不断添加新的测试数据,我们希望确保已经摄取的输入数据不会改变。这将解决当前测试失败的原因之一。我们所有的输入数据都使用相同的前缀存储,对于预期数据也是如此。

不,这不可能。

相同的 API 调用和相同的权限用于上传对象,无论是否已存在同名对象。

您可以使用 Amazon S3 版本控制 来保留旧对象和新对象,但这取决于您将如何使用这些对象。

您描述的方式是不可能的,但是有一种叫做 S3 object lock 的机制,它允许您锁定文件的特定版本。它不会阻止创建新版本的文件,但您锁定的版本将是不可变的。