首页 > 解决方案 > 使用 lambda 函数将视频上传到 s3 存储桶,将视频详细信息上传到 dynamo db

问题描述

我们正在构建一个应用程序来上传和流式传输短视频。已计划使用 AWS S3 和 AWS Lambda 函数、Dynamo DB 以及 AWS API Gateway 来上传视频。我们必须将所有视频文件详细信息例如:用户详细信息存储在 dynamo db 表中。

但是我们可以在 API Gateway 中发现上传大视频文件的一些限制。那么将视频上传到 S3 Bucket 的最佳方法是什么?

标签: amazon-web-servicesamazon-s3aws-lambdaamazon-dynamodb

解决方案


您可以使用预签名的 url将文件直接上传到 S3 。通过使用预签名的 url,您可以将存储桶保密。

这可以从客户端(Web 浏览器)完成,并根据需要使用 API Gateway 将 S3 密钥或 URL 保存在 DynamoDB 中。

这种方法将减少您的 AWS 服务器上的负载,这是可取的。

一个完整的解决方案可以是这样的

  • 调用 API Gateway 以获取预签名的 url 以上传视频
  • 客户端(网络浏览器)使用它获得的预签名 URL 进行上传
  • 调用 API Gateway 通知上传完成,调用 lambda,将数据保存到 DynamoDB

或者,您可以通过将文件添加到 S3 来触发 lambda,该文件对视频进行进一步处理(例如,可能通过启动媒体转换作业)


推荐阅读