【发布时间】:2017-05-17 00:25:48
【问题描述】:
当调用 lambda 函数上传大小为 3MB 的视频时,它工作正常。但是当调用 lambda 函数上传大小大于 7MB 的视频时,我收到错误 502 bad gateway 并显示消息:“内部服务器错误”并且:
- 内容长度→36
- content-type →application/json 日期 →Tue, 09 May 2017 14:50:47 GMT
- 状态→502
- 通过 →1.1 7a85b832328dd1601b1abdd4f06ee281.cloudfront.net (CloudFront)
x-amz-cf-id →0aY02rUX-0WJDjR2tLInShdHxrUMX3ncFv42C60udOPSaW7b5rdbNw==
x-amzn-requestid →e310d705-34c6-11e7-8f97-abf7320514e7
- x-cache →来自云端的错误
我的有效载荷是: { "文件名":"test.mp4", "data":"data:video/mp4;base64,AAAAHGZ0eXBkYXNoAAAA......."(视频格式base64的内容) }
所以请帮助我为什么会出现这个错误以及如何/在哪里配置来传递这个问题。谢谢。
【问题讨论】:
-
Lambda 日志中有什么内容吗?
-
@stdunbar 在 cloudwatch 中没有其他内容 :( 。我认为 lambda 函数不接受大主体的请求。对吗?
-
为什么要在请求中传递视频内容?
-
@johni:我使用 lambda 作为后端。前端允许用户选择文件并将请求包含的文件内容(base64)发送到后端。后端使用此信息将文件上传到 s3 并将文件名、描述...写入 dynamodb。这是我的工作流程,但是,您能否根据我的工作流程提出另一种方法来做到这一点?
-
是的。您应该有一个 lambda 生成具有上传权限的“预签名”URL(谷歌该术语) - 客户端使用它来将视频上传到您的存储桶。您可以将描述添加到 s3 对象元数据。然后将触发器(用于新的 s3 对象事件)设置为新的 lambda,它将(自动)更新您的 dynamoDb 表。
标签: aws-lambda