API网关触发AWS Lambda上的二进制数据

问题描述 投票:2回答:1

我知道关于这个主题有几个类似的问题,但我还没有找到我的确切问题。如果有,请原谅我,请给我链接:-)

我有一个由API网关触发的lambda函数,并返回一个base64编码的image / tiff文件字符串。

我编辑了API网关配置,以便将字符串转换回二进制数据。

如果我直接使用AWS功能测试所有这些,则会正确显示二进制图像代码(.tiff文件)。

It works!

但是,如果我通过Postman测试它,下载的文件仍然包含base64编码的字符串,需要进行解码。因此,我不能直接从API下载文件,但是必须在客户端进行一些转换,对吧?

enter image description here

这是我通过Postman从我的API收到的标题:enter image description here

我也包括了我的Accept标题:image/tiff

我的python lambda后端返回看起来像这样:return base64.b64encode(binary_data).decode('ascii')

为什么它会在AWS控制台上转换为二进制数据,而不是通过Postman(或curl)转换为二进制数据?我有点迷茫。这里是集成响应的设置:enter image description here

最后,我想通过无服务器设置所有这些,但我已经很高兴通过Web前端让它工作并稍后迁移到无服务器。

在此先感谢您的帮助。

python amazon-s3 aws-lambda postman aws-api-gateway
1个回答
0
投票

这不是问题的直接答案,而是更多的解决方法:

我们通过生成预先指定的URL并从那里显示二进制数据来解决这个问题。这就像一个魅力。

© www.soinside.com 2019 - 2024. All rights reserved.