首页 文章

使用网关API将图像上传到Lambda

提问于
浏览
1

我试图让用户将图片上传到lambda函数进行处理;使用网关API接口 .

我试图为我的POST方法指定一个模型,但到目前为止我一直收到错误

指定的模型无效:验证结果:警告:[],错误:[指定的模型架构无效]

......没那么有帮助 .

我知道我无法直接将原始数据发送到lambda,并且必须在中间使用某种格式 .

我的理解是我可以让网关接口base64为我编码数据 .

我尝试使用以下内容类型为image / jpeg的模型架构

{
    "body" : $util.base64Encode($input.body)
}

如何发送图像?

2 回答

  • 1

    如您所见,API网关中没有二进制数据的本机支持 . 我们正在努力解决这个问题,但我没有为您提供ETA . 有些客户已经成功地对您的问题中的数据进行了base64编码,只有它应该位于Integration Request not Method Request中的映射模板中 .

    如果将内容类型设置为image / jpeg,则仅当传入请求中的Content-Type标头也是image / jpeg时才会应用编码,因此请务必进行设置 .

    您还可以通过将'Request body passthrough'(API中的passthroughBehavior)设置为建议值(API中的"when there are no templates defined"或'WHEN_NO_TEMPLATES')来拒绝对 don't 发送正确内容类型的方法的传入请求

    直通行为的文件 - > https://docs.aws.amazon.com/apigateway/api-reference/resource/integration/#passthroughBehavior

  • 2

    由于看起来使用二进制数据和API网关很复杂,我认为你应该:

相关问题