首页 > 解决方案 > 使用 S3 进行分段上传会克服 Lambda 6MB 请求负载限制吗?

问题描述

我正在制作一个 lambda 函数,它将生成一个 pdf 文件,然后需要将其发送到 S3。

该文件是在 lambda 函数中生成的,因此我无法使用预签名的 url 从客户端上传它,因为客户端没有该文件。生成的文件不会在 512MB(lambda /tmp 存储限制)的范围内,但会超过 6MB。

我还不确定是否应该将其转换为容器,因为 lambda 的最大请求负载为 6MB。

想到的一个想法是使用 s3 multipart-upload 并将这些部分上传到 4MB 的块中。

但这真的能解决问题吗?还是我应该只创建一个容器?

考虑到 lambda 成本节省,有办法绕过 lambda 6MB 限制对我来说将是非常有益的。

标签: amazon-s3aws-lambda

解决方案


6 MB 限制适用于您在同步调用中发送回用户从用户接收的数据。您可以将结果上传到 S3 并向调用者发送一个指向该对象的预签名 URL,这是一种常见的模式,并且让您远离 6 MB 的限制。

Src:Lambda 限制文档


推荐阅读