Amazon web services 来自AWS Api网关的二进制数据

Amazon web services 来自AWS Api网关的二进制数据,amazon-web-services,aws-lambda,aws-api-gateway,binary-data,Amazon Web Services,Aws Lambda,Aws Api Gateway,Binary Data,我只是设置了一个API网关(AWS)来返回二进制数据(image/png)。 我的API从lambda成功读取并解码Base64,然后返回二进制数据,但它无法显示在我的浏览器上。 这是我的网关日志: 当我向邮递员请求时,它无法显示,响应为base64数据: 有人能帮我处理这个案子吗? 谢谢大家! 从api网关获得的数据是二进制数据。尝试将输出写入文件并保存。那应该是你的图像文件 我正在做同样的用例,但我在api网关方面失败了。你能分享一下你的api网关代码吗 当您从浏览器获取图像时,浏览器会

我只是设置了一个API网关(AWS)来返回二进制数据(image/png)。 我的API从lambda成功读取并解码Base64,然后返回二进制数据,但它无法显示在我的浏览器上。 这是我的网关日志:

当我向邮递员请求时,它无法显示,响应为base64数据:

有人能帮我处理这个案子吗?
谢谢大家!

从api网关获得的数据是二进制数据。尝试将输出写入文件并保存。那应该是你的图像文件


我正在做同样的用例,但我在api网关方面失败了。你能分享一下你的api网关代码吗

当您从浏览器获取图像时,浏览器会将接受头设置为类似于,
accept:image/webp,image/apng,image/*,*/*;q=0.8
,API网关将只从Accepts头中选取第一个值

如果第一个值与二进制中介类型中的模式相匹配,API网关会将其视为二进制数据,因此它将从Base64字符串转换为二进制数据或通过二进制数据。p> 如果没有基于客户端/浏览器的Accepts标头的行为更改,则始终可以在集成响应中将contentHandling属性设置为

CONVERT\u to\u BINARY
,然后API网关将忽略Accepts标头


我建议您可以将
image/*
放到API上的binaryMediaTypes中,然后重新部署API并在浏览器上重试。它应该作为二进制数据返回。

您是否尝试将内容转换为utf-8?如下所示:context.success(content.Body.toString('utf-8');