Amazon S3 策略只允许上传而不是覆盖 [重复]

Posted

技术标签:

【中文标题】Amazon S3 策略只允许上传而不是覆盖 [重复]【英文标题】:Amazon S3 policy allowing only upload not overwrite [duplicate] 【发布时间】:2013-08-12 00:26:59 【问题描述】:

我正在开发一个移动应用程序,它可以让任何人将文件上传到 S3 存储桶。我想我会使用亚马逊提供的匿名令牌自动售货机。

但是,我看不到如何编写一个只允许上传新文件而不是覆盖(有效删除)的 TokenVendingMachinePolicy.json 文件。我认为只允许s3:PutObject 会很好,但似乎s3:PutObject 权限允许两者。这似乎有点奇怪,因为有一个单独的s3:DeleteObject 权限,这是没用的,因为无论如何你都可以用 0 长度的对象覆盖。

有没有办法只允许上传新文件?这个问题一般是怎么解决的?

【问题讨论】:

您找到解决方案了吗? 我现在也有同样的问题......如果使用预签名 URL 直接从客户端浏览器上传到 S3 存储桶,那么理论上用户可以删除另一个用户的文件拥有他们想要“删除”的文件的密钥(公开可用)。 【参考方案1】:

很遗憾,不可能拥有一次写入权限。一种解决方法是在您的存储桶上使用版本控制。

查看详细解释的类似问题的答案:

Amazon S3 ACL for read-only and write-once access

【讨论】:

以上是关于Amazon S3 策略只允许上传而不是覆盖 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Amazon S3 存储桶策略只允许访问特定的 http

Amazon S3 - 尽管有 GetObject 限制,但返回 403 错误而不是 404

使用 Amazon S3 阻止公有访问

amazon s3 重命名和覆盖文件、建议和风险

django-storages with Amazon S3 - 防止覆盖

基于浏览器的上传到 Amazon S3?