gpt4 book ai didi

java - AWS API 在 S3 中上传文件并在数据库中写入记录

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:00 28 4
gpt4 key购买 nike

我需要实现一个 AWS 后端 API,允许我的移动应用程序的用户在 Amazon S3 中上传文件(图像)。创建直接与 Amazon S3 接口(interface)的 API 不是一种选择,因为我将无法将上传的文件与 DynamoDB 上的用户记录相关联。我想创建一个由执行以下步骤的 API 触发的 Lambda 函数 (Java):1) 调用 Amazon S3 功能上传文件2)使用文件的引用将记录写入我的Dynamo DB有没有一种方法可以将二进制文件输入到公开为 API 的 Lambda 函数?

请告诉我。谢谢!

大卫

最佳答案

最好的方法是使用 presigned URLs .您可以生成一个 URL,让用户可以将具有特定名称和类型的文件直接上传到 S3。这样您就不必担心大文件会减慢您的服务器速度、lambda 限制或带宽的双重费用。在大多数情况下,它对用户来说也更快,并且支持 S3 transfer acceleration .

该过程可能类似于:

  1. 用户从您的服务器请求链接
  2. 您的服务器在 DynamoDB 中写入一个条目并返回一个预签名的 URL
  3. 用户使用预先签名的 URL(使用您选择的服务器的确切名称)将文件直接上传到 S3
  4. 上传完成后,您可以使用 Lambda 收到通知,或者让用户告诉您的服务器上传已完成
  5. 您的服务器执行任何必要的后处理并将文件标记为就绪

为了回答您的实际问题,是的,有一种方法可以 pass binary data to Lambda functions .该链接是一个循序渐进的教程,但基本上在 API 网关中,您必须将“请求正文直通”设置为“未定义模板时(推荐)”并填写您期望的内容类型。您的映射应包含 "base64data": "$input.body",并且您需要在“Binary Support”下设置您的类型。在您实际的 lambda 函数中,您应该有权访问数据作为 "base64data"

关于java - AWS API 在 S3 中上传文件并在数据库中写入记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168626/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com