【问题标题】:AWS lambda for file uploads用于文件上传的 AWS lambda
【发布时间】:2020-04-20 17:11:34
【问题描述】:

这不是一个编程问题,但我认为这是提出这个问题的正确地方。

我的应用程序是部署在 AWS ec2 中的 Spring Boot 应用程序,服务器是 t3.micro,只有 1gb 内存。该应用程序本身非常稳定并且运行顺畅。 但是当我尝试通过同一台服务器上传文件时,服务器堆空间被耗尽并且应用程序被杀死。所有文件都存储在 s3 中。 有时我可能需要上传最大 1Gb 的文件

我一直在考虑完全使用 AWS lambda 来满足我的文件上传和下载需求,这是一个好方法吗?如果有人遇到过类似的问题并使用其他方法解决了,请告诉我。欢迎提出任何建议。

或者,如果我需要遵循一些不会占用堆空间的文件上传操作,那也会很有帮助。在某些时候,同一台服务器可能有大约 3k RPM。

我想的流程是client -> API Gateway -> Lambda -> S3

【问题讨论】:

  • 如果我明白你的意思......不,使用 Lambda 代理 S3 上传不是一个好方法。您的 web 应用程序应该向您的客户提供有时间限制的预签名 URL。然后,您的客户端可以将文件直接上传到 S3。
  • 我试图使用 AWS API Gateway 创建一个 post API 并直接从客户端访问端点,然后触发 lambda 函数并返回路径
  • 是的,您可以让您的客户端通过 API Gateway 调用 Lambda,并让 Lambda 返回一个 S3 预签名的 PUT URL,如果这就是您所说的“返回路径”的话。

标签: amazon-web-services aws-lambda architecture


【解决方案1】:

感谢您的回复。 我尝试使用我想到的方法失败了,因为 API Gateway 最大有效负载大小为 10 MB

我最终使用了 Jarmod 的解决方案,即使用预签名的 url 从 S3 上传和下载。这种方法将大大节省应用程序服务器的 CPU。 谢谢@jarmod 和@prashant

【讨论】:

    猜你喜欢
    • 2017-08-26
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 2019-02-11
    • 2021-12-18
    • 2019-05-27
    • 1970-01-01
    • 2018-07-12
    相关资源
    最近更新 更多