AWS Lambda作为s3上传的文件验证系统

时间:2016-04-21 16:14:00

标签: php amazon-web-services amazon-s3 lambda

我需要在社交网络类型的服务中使用s3来存储来自用户的内容并管理访问权限。

到目前为止,这是我想到的:

  1. 客户告诉LAMP服务器他想上传文件
  2. LAMP进行身份验证,并为用户可以上传的s3生成预先签名的URL。它还使用私钥创建该密钥的加密版本。然后它添加了这个键,以及在mysql表中启动它的用户(以及它何时启动)
  3. LAMP然后将密钥和数字签名从2.发送给客户。
  4. 客户端然后将文件上传到s3
  5. 完成后,他告诉LAMP该文件已完成。它发送密钥和数字签名。
  6. LAMP确保密钥和签名匹配。如果他们这样做,LAMP知道客户对于给予他的密钥是诚实的(并且他没有随机生成密钥)
  7. LAMP然后检查s3以确保具有该密钥的文件存在,如果存在,则删除在2中添加的行。
  8. 询问后,我被告知s3本身不可能验证某个文件是某种类型的“有效”文件(我只想强制执行图像) 所以我决定使用aws lambda来验证它(如果它是'错误的'文件,只需删除它)。在将文件上传到s3之后,可以触发lambda。

    但是,BEFORE lambda完成检查文件的可能性,上面的步骤7可能会被执行。这意味着我的服务器会认为文件有效。

    有没有办法让s3上传+ lambda执行原子? 欢迎任何建议

0 个答案:

没有答案