让亚马逊S3在文件上传时发送http请求

时间:2017-11-13 21:31:46

标签: node.js amazon-web-services amazon-s3

当我的S3存储桶中上传文件时,我需要我的nodejs应用程序接收带文件名的http请求。

我想就实现这一目标的最简单/最直接的方式提出一些建议。

到目前为止,我看到有3种方法可以做到这一点,但我觉得我正在过度思考这个问题,而且肯定存在更好的选择:

1 / 在s3上传的文件 - > S3向SNS发送通知 - > SNS向我的应用程序发送http请求

在s3上传的

2 / 文件 - > lambda函数被触发并向我的应用程序发送http请求

3 / 让我的应用程序定期监视存储桶并在上传文件时执行某些操作

感谢

PS。是的,我真的很新亚马逊服务:)

2 个答案:

答案 0 :(得分:1)

  1. SNS:工作正常,但您必须管理SNS主题订阅。您也无法控制HTTP帖子的格式。
  2. Lambda:这就是我要去的地方。它为您提供最大的控制力。
  3. 您如何有效地检查新对象?这不是一个好的解决方案。
  4. 您还可以让S3将新对象事件发布到SQS,并将您的应用程序配置为轮询SQS队列而不是侦听HTTP请求。

答案 1 :(得分:0)

SNS - 如果您想在更新S3时调用多个服务,那么我会建议使用SNS。您可以为SNS创建主题,并且该主题可以有多个订阅者。稍后,如果您想添加更多HTTP,那么就像订阅主题一样简单。

Lambda - 如果您只需要向一个HTTP端点发送通知,那么我强烈建议您这样做。

SQS - 在这种情况下,您不需要SQL。 SQS主要用于解耦组件,最适合微服务,但您也可以使用其他消息传递系统

你不需要在你身上构建一些东西来定期监视存储桶的变化,因为已经有像Lambda,SNS等那样的服务。