得到亚马逊S3发送file uploadhttp请求

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

我想就最简单/直接的方式来达成这个build议。

到目前为止,我看到3种方法可以做到这一点,但是我觉得我已经推翻了这个,而且肯定有更好的select:

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

2 /在s3上传的文件 – > lambda函数被触发,并向我的应用程序发送一个http请求

3 /让我的应用程序定期观看存储桶,并在file upload时做一些事情

谢谢

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

  1. SNS:工作正常,但您必须pipe理SNS主题订阅。 你也不能控制HTTP post的格式。
  2. Lambda:这就是我想要的。 它给你最大的控制。
  3. 你将如何高效地检查新的对象? 这不是一个好的解决scheme。

您也可以让S3将新的对象事件发布到SQS,并将您的应用程序configuration为轮询SQS队列,而不是侦听HTTP请求。

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

Lambda – 如果您只需要将通知发送给一个HTTP端点,那么我会强烈build议您这么做。

SQS – 在这种情况下您不需要SQL。 SQS主要用于解耦组件,并且最适合用于微服务,但是您也可以与其他消息系统一起使用

你不需要build立一些东西来定期监视存储桶的变化,就像Lambda,SNS等已经有的服务一样。