通过网站上传一个文件到S3,用Lambda处理,并将文件发送回用户



我是AWS的新手。

我想做的是在S3上托管一个静态网站。用户将能够通过前端将zip文件上传到S3。一旦收到,lambda函数将处理zip文件,并将输出保存到另一个bucket中的单个HTML文件中。

然后,我将如何通过前端将处理后的文件返回给正确的用户?我是否需要将cookie或其他东西与原始文件一起发送,并以某种方式通过lambda发送?此外,是否有一个进程可以直接从处理lambda函数将处理后的文件返回到原始上传器?

谢谢大家,

感谢:(

您不一定需要API网关,但它现在似乎是免费的。我发现适用于我的网站的解决方案是使用后端,该后端可与AWS S3和AWS Lambda(均在AWS免费层上(对话。您可以使用AWS Amplify(也在免费层(在AWS上轻松托管后端。

当您使用AWS时,您通常有一个后端可以直接与可以访问您的AWS凭据的AWS对话,这提供了安全性,因为前端无法访问AWS凭据。


  1. 在这种情况下,前端要求后端提供签名的url以将zip文件上传到AWS S3。

  2. 当使用签名的url上传文件时,AWS S3 bucket上传事件会触发AWS lambda,该lambda开始处理zip文件。

  3. 当lambda完成对该文件的处理后,lambda会将处理后的文件上载到另一个bucket。

  4. 由于我们只是使用HTTP请求,而不是Pub/Sub(websockets(,我们需要前端定期轮询后端的端点,以检查我们处理的zip文件是否存在于目标AWS S3 Bucket中,如果存在,则返回一个签名的url来访问该文件。

  5. 最后,前端使用这个第二个签名的url来访问处理后的zip文件。

最新更新