问题 通过AWS API Gateway发布表单数据和二进制数据


我正试图通过AWS API Gateway将“mutlipart \ form-data”发布到我的EC2实例,但我找不到办法。有一种方法可以使用“application / x-www-form-urlencoded”发布数据并使用Mapping Tamplate将其转换为JSON,但我仍然会发布像图像文件这样的二进制数据。有什么我想念的吗?

编辑:

我找到了另一种方式:

我将图像转换为base64字符串,然后将其作为内容类型“application / x-www-form-urlencoded”进行POST。通过这种方式,我将整个图像作为字符串发送。收到消息后,我可以将其转换回PHP中的图像。只有这一点,我能找到的是当我将图像转换为base64时,它的大小会变得更大。除此之外,我找不到任何其他的缺点。如果有可能请与我分享?


1305
2017-12-18 22:39


起源

您可以尝试通过AJAX将二进制数据单独上传到S3。这应该可以解决你的问题。 - kixorz
@kixorz,人们坚持使用API​​网关,而不是直接向S3发送数据有多种原因。就我而言,我需要API很简单,用户必须有API-Key才能调用端点。 API Gateway为我简化了这一点。 - Subin Sebastian
我知道这一点,但暂时你需要找到一个解决方法。 S3是一个不错的解决方案。 - kixorz


答案:


Api Gateway团队在这里。

目前不支持二进制数据,但它在我们的待办事项上。有几位客户要求这样做。

一些客户已成功在映射模板中使用base64 util,这可能使它适合您: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#util-template-reference

除此之外,你将不得不等待官方支持。

编辑

二进制支持终于来了!!


14
2017-12-18 23:29