当我的S3存储桶中上传文件时,我需要我的nodejs应用程序接收带文件名的http请求。
我想就实现这一目标的最简单/最直接的方式提出一些建议。
到目前为止,我看到有3种方法可以做到这一点,但我觉得我正在过度思考这个问题,而且肯定存在更好的选择:
1 / 在s3上传的文件 - > S3向SNS发送通知 - > SNS向我的应用程序发送http请求
在s3上传的2 / 文件 - > lambda函数被触发并向我的应用程序发送http请求
3 / 让我的应用程序定期监视存储桶并在上传文件时执行某些操作
感谢
PS。是的,我真的很新亚马逊服务:)
答案 0 :(得分:1)
您还可以让S3将新对象事件发布到SQS,并将您的应用程序配置为轮询SQS队列而不是侦听HTTP请求。
答案 1 :(得分:0)
SNS - 如果您想在更新S3时调用多个服务,那么我会建议使用SNS。您可以为SNS创建主题,并且该主题可以有多个订阅者。稍后,如果您想添加更多HTTP,那么就像订阅主题一样简单。
Lambda - 如果您只需要向一个HTTP端点发送通知,那么我强烈建议您这样做。
SQS - 在这种情况下,您不需要SQL。 SQS主要用于解耦组件,最适合微服务,但您也可以使用其他消息传递系统
你不需要在你身上构建一些东西来定期监视存储桶的变化,因为已经有像Lambda,SNS等那样的服务。