amazon-web-services - 二进制文件的 aws api 网关映射模板
问题描述
我正在尝试将二进制文件和字符串参数发送到 AWS API Gateway。
这是 API Gateway POST 上的映射模板:
{
"imageFile" : $input.params('imageFile'),
"purdueUsername" : $input.params('purdueUsername'),
"description" : $input.params('description'),
"price" : $input.params('price'),
"longitude" : $input.params('longitude'),
"latitude" : $input.params('latitude'),
"category" : $input.params('category'),
}
当我尝试这个
{
"imageFile" : "$input.params('imageFile')",
"purdueUsername" : "$input.params('purdueUsername')",
"description" : "$input.params('description')",
"price" : "$input.params('price')",
"longitude" : "$input.params('longitude')",
"latitude" : "$input.params('latitude')",
"category" : "$input.params('category')",
}
我得到空参数。api 没有收到我通过 POST 请求发送的参数。
我应该如何更改映射模板?注意:当我只尝试在映射模板中使用 imageFile 并且只发送没有额外参数的二进制文件时,它完全可以正常工作。
{
"imageFile" : "$input.body"
}
但是,我希望能够在二进制文件旁边发送其他参数。
解决方案
这就是我解决问题的方法。我在 POST 请求的正文中发送二进制文件,并将其他参数作为标头发送。
这是我放在 AWS API Gateway 上的映射模板
{
"purdueUsername" : "$input.params('purdueUsername')",
"description" : "$input.params('description')",
"price" : "$input.params('price')",
"longitude" : "$input.params('longitude')",
"latitude" : "$input.params('latitude')",
"category" : "$input.params('category')",
"isbnNumber" : "$input.params('isbnNumber')",
"imageFile" : "$input.body"
}
推荐阅读
- kerberos - Nifi + Hortonworks Schema Registry + Kerberos:需要 401 身份验证
- beanstalkd - Beanstalkd - 是否可以暂停一个管并继续处理其他管?
- ios - Swift:转义闭包捕获非转义参数“onCompletion”
- semantic-ui - 选项卡中的关闭图标
- c# - 为什么 ToolStrip 控件 (Segoe UI 16) 和所有其他控件 (Microsoft Sans Serif 13) 有不同的字体?
- typescript - 在 tupescript mixin 错误中访问 vue 组件 getter (TS2339)
- javascript - 获得最大高度,用户在网页内移动
- swift - 如何在委托协议模式中使用相同的实例?
- javascript - Vue:计算属性未传递给子组件(控制台记录“空字符串”)
- c++ - 如何在对对象使用右值时适当地调用复制构造函数?