0

所以,我想要一个服务,在 S3 存储桶中创建具有特定链接的文件,然后允许任何拥有文件链接的人写入文件并读取它。

但是,如果您有链接,则创建文件不能是公共特权,只能编辑/读取现有文件。

这可以通过存储桶策略实现吗?基本上允许一项服务 CRUD 特权,但具有公共 RU 特权。

4

1 回答 1

1

您需要自己编写这样的服务。

首先,请注意Amazon S3 中的“创建”和“更新”没有区别——两者都使用PutObject操作。对象不能被“编辑”——它们只能被覆盖。

您可以通过使用带有混淆 URL 的公共对象来实现您的阅读目标——只要有人知道 URL,他们就可以访问该对象。不是一种完美的安全手段,但这是您的选择。

您不想授予在存储桶中创建对象的公共权限,否则任何人都可以将任何文件上传到存储桶(例如受版权保护的电影),并且您将支付存储和数据传输的成本。

允许上传的更安全的方法是让用户对您的后端进行身份验证,然后您的后端可以生成可用于上传到存储桶的 Amazon S3 预签名 URL 。此预签名 URL 可以指定限制,例如文件大小和上传的文件名。

有关更多详细信息,请参阅:使用预签名 URL 上传对象 - Amazon Simple Storage Service

于 2021-08-18T12:19:42.513 回答