我想要的是
一个 API,它使用 POST 获取文件和一些参数并返回 JSON 响应。
curl -X POST www.endpoint.com \
-F file=@/myfile.txt \
-F foo=bar # other params
我使用二进制数据与 Lambda + API 网关配合使用,但问题是 10MB 限制。
我考虑过使用 POST API 将文件上传到 S3。然后 Lambda 读取生成的事件。但对此我有几个问题——
- 我的其他参数会去哪里?
- Lambda 将如何返回响应?
如果您想坚持使用无服务器解决方案,那么您的用例根本不可能通过一次 API 调用实现。
对于客户端来说,可能的无服务器解决方案将分为三步。
Step 1
调用 api1 获取 S3 的签名 url。这将指向创建 UUID 并使用该 UUID 为 S3 构建签名 URL 的 Lambda(即使用 UUID 作为正在接收的文件的文件名)。响应将是 URL 和 UUID。
Step 2
使用签名 URL 将文件放入 s3。
Step 3
调用 api2 并传递 UUID 以及所需的其他参数。该 API 还指向 Lambda,该 Lambda 现在知道文件所在位置(感谢 UUID),并且具有处理文件和给出响应所需的任何其他参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)