Amazon S3:不允许客户端修改已上传的图像?

时间:2017-08-07 06:30:05

标签: amazon-web-services amazon-s3 acl

我们正在使用S3进行图片上传过程。我们批准上传到我们网站上的所有图片。这个过程就像:

  1. 客户端在给定路径上从javascript上传S3图像。 (使用令牌)
  2. 有一次,我们从S3获取网址,我们将数据库中的S3路径保存为照片表中的'isApproved flag false'。
  3. 图像通过我们的主管批准后,图像开始显示在我们的网站上。
  4. 问题在于,用户可以在批准过程之后通过生成的令牌更改图像(到某些淫秽图像)。我们可以以某种方式阻止用户修改这样的图像吗?

    一个临时修复是缩短令牌生命周期间隔,即5分钟,并仅在该间隔后批准图像。

    我看到this但没有帮助,因为版本控制也会替换已上传的图片并将以前上传的图片移至新的版本化路径。

    有更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

您应该围绕上传的图片创建工作流程。这个过程将是:

  • 客户端上传图片
  • 这会触发向您/您的系统发送Amazon S3事件通知
  • 如果您批准该图片,请将其移至为您的内容提供服务的公共存储桶
  • 如果您不批准该图片,请将其删除

这可以是使用AWS Lambda函数更新数据库并标记照片以供批准的自动过程,也可以在通过Amazon SNS收到电子邮件通知后手动完成。选择取决于你。

这种方法的好处是一旦获得批准,任何事物都无法替代。