首页 > 解决方案 > 从移动应用程序将图像上传到 AWS S3

问题描述

我正在学习 AWS 和 Flutter,以便为大学的一门学科开发像 Instagram 这样的移动应用程序(Android)。

我的问题是,是否有办法将应用程序中的图像直接发送到 S3 存储桶,并将与该图像相关的 URL 存储在 DynamoDB 中。

我将 Flutter 用于前端(它不使用 AWS SDK)并开发后端 AWS Api Gateway (Api REST)、Lambda 和 DynamoDB。

我读到如果将图像转换为base64,则可以在请求正文中传递图像,但我担心这是否是最佳方法。我在想,如果我以这种方式传递图像,Api Gateway 和 Lambda 的 AWS 免费层将被消耗,因为考虑到我将上传并处理以保存在 S3 存储桶中的请求主体的大小几张图片。

图片的尺寸为 1080x1350px,所以我认为大小约为 500KB,我也打算上传视频。

我将不胜感激任何形式的指导,因为我是 AWS 的新手。

标签: amazon-web-servicesflutteramazon-s3

解决方案


您可以使用 S3 预签名 URL,因为它将提供可扩展的解决方案,从而克服 API 网关施加的限制。因为视频文件 - 特别是高清文件,如果您将文件直接传递给 API 网关,稍后会引入限制 wrt API 网关的问题。


推荐阅读