我知道有关此主题的几个类似问题,但是我还没有找到确切的问题。如果有一个,请原谅我,请给我发送链接:-)
我有一个由API网关触发的lambda函数,它返回图像/ tiff文件的base64编码的字符串。
我编辑了API网关配置,以便将字符串转换回二进制数据。
如果我直接在AWS功能上进行了所有测试,则二进制图像代码(.tiff文件)将正确显示。
但是,如果我通过Postman对其进行测试,则下载的文件仍然包含base64编码的字符串,需要对其进行解码。因此,我不能直接从API下载文件,而必须在客户端进行一些转换,对吧?
我也添加了Accept
标头:image/tiff
我的python lambda后端返回看起来像这样:
return base64.b64encode(binary_data).decode('ascii')
为什么它会在AWS控制台上转换为二进制数据,而不通过Postman(或curl)转换为二进制数据?我有点迷路。这是我的集成响应设置:
最后,我想通过无服务器设置所有这些设置,但是我已经很高兴可以通过Web前端使其运行并稍后迁移到无服务器。
预先感谢您的帮助。
答案 0 :(得分:0)
这不是问题的直接答案,而是更多解决方法:
我们通过生成一个预签名的url并从那里显示二进制数据来解决此问题。就像魅力一样。