API Gateway - 发布多部分/表单数据

Posted

技术标签:

【中文标题】API Gateway - 发布多部分/表单数据【英文标题】:API Gateway - Post multipart/form-data from 【发布时间】:2017-06-06 04:29:40 【问题描述】:

我正在尝试从 multipart/form-data POST 获取表单数据到我的 AWS Http Body Mapping Templates Web 服务。

HTTP POST 请求(使用邮递员)的 Content-Type 为“multipart/form-data”,body 是具有 3 个 key-value 内容的 form-data,其中一个是 File。 p>

如果我直接调用 http 端点(不是通过 API 网关) - 使用邮递员或移动设备,它会按预期工作,但是,使用 API 网关端点(通过邮递员)会失败。

我的服务器方法是:

public ResponseEntity MethodName(MultipartHttpServletRequest request) ...

但我的请求甚至进入了我的方法体并引发了异常"Could not parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found"

我还尝试为内容类型 multipart/form-data 设置 Http -> 集成请求 -> 正文映射模板(内容为 "body" : "$input.body" 或 @987654324 @) 输入直通。这也没有帮助。

【问题讨论】:

【参考方案1】:

API Gateway 当前不支持多部分表单数据。这正在考虑未来的发展。同时,您需要修改您的客户端以不使用多部分请求。

见API Gateway - Post multipart\form-data

【讨论】:

所以我想从前端将图像作为 multipart/form-data 发送到 lambda 函数,以便它可以更改图像,然后将其存储在 S3 中。我可以使用什么替代方法来完成这项工作?

以上是关于API Gateway - 发布多部分/表单数据的主要内容,如果未能解决你的问题,请参考以下文章

Facebook API 使用带有多部分表单数据的 HTTP POST 请求的错误响应

如果“内容类型”:“多部分/表单数据”,CORS 问题

PlayWS发布多部分表单数据

通过 API Gateway 保护对 AWS Lambda 的访问

Jersey API中的多部分/表单数据出现CORS错误

Quarkus 找不到内容类型多部分/表单数据休息客户端的编写器