如何从客户端上传 S3 中的大型媒体文件?



我有一个表单,用户在其中从客户端提交图像。目前,我正在使用 AWS Amplify 将图像上传到 s3。到目前为止,我还没有遇到任何问题,因为大多数时候用户选择的图像小于5MB。但是现在我需要扩展此限制并优化性能,因为大小限制增加了。当我研究性能时,我了解了传输加速及其与 AWS 开发工具包的兼容性,而不是 AWS Ampify。因此,我不得不将上传逻辑移动到 SDK。我在后端遵循的架构是无服务器和 Lambda 的。假设用户提交他的表单,请求周期包含大小为 10MB 的图像。但 lambda 不会处理此请求,因为 lambda 请求-响应周期限制为 6MB 事务。如何在增加大小限制的同时提高性能?此外,可以通过 AWS 放大本身来实现吗?

您的使用案例最好与 S3 预签名网址一起使用。在这种情况下,您的 lambda 函数使用 aws-sdk 生成一个 url 以进行 s3 上传,并仅返回前端的 URL。然后,您可以从前端直接上传到此 URL,而无需再次调用 AWS Lambda。所有数据传输都将在您的前端和 S3 之间进行。

您可以在此处找到有关此解决方案的更多详细信息。

最新更新