Aws lambda弄乱了我的编码

我在用着

https://clifff.com/2015/10/01/2015-failed-experiments-with-aws-lambda/ + https://www.twilio.com/blog/2015/09/build-your-own-ivr -with-AWS-λ-亚马逊API的网关和twilio.html

在aws lambda上创build一个图像大小调整服务…我解决了第一篇文章被卡住的内容types问题,但编码看起来像是一个死胡同…任何帮助将不胜感激!

ruby

Base64.decode64("R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7") 

– >工作形象

 GIF89a\u0001\u0000\u0001\u0000\x80\u0000\u0000\u0000\u0000\u0000\xFF\xFF\xFF!\xF9\u0004\u0001\u0000\u0000\u0000\u0000,\u0000\u0000\u0000\u0000\u0001\u0000\u0001\u0000\u0000\u0002\u0001D\u0000; 

api网关

 $util.base64Decode("R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7") 

– >破碎的图像

 GIF89a\u0001\u0000\u0001\u0000 \u0000\u0000\u0000\u0000\u0000   ! \u0004\u0001\u0000\u0000\u0000\u0000,\u0000\u0000\u0000\u0000\u0001\u0000\u0001\u0000\u0000\u0002\u0001D\u0000; 

好吧,这是超线程,但由于问题仍然没有解决,API GW的二进制支持logging非常糟糕,我认为有人可能会发现我发现有用的解决方法:

我相信,二进制数据是作为UTF-8string在API GW内部传递的。 如果您只需要返回一个跟踪像素(而不是生成的图像)​​,那么可以通过使用二进制数据中没有有问题的字节的图像来避免编码混乱的问题。

例如,最短的跟踪像素(26字节长的GIF)在中间具有hex表示0xFF的字节。 这将打破API GW。 但是如果你在hex编辑器中编辑这个图片,并用0x00代替这个字节,你会得到一些仍然是有效的图像(甚至微软的浏览器也不会抱怨),但仍然可以通过API GW来处理。

只要让你的“身体映射”模板看起来像这样:

 $util.base64Decode("R0lGODlhAQABAAAAACwAAAAAAQABAAACADs=") 

是啊…看起来这是一个知道的问题https://forums.aws.amazon.com/thread.jspa?messageID=668306&#668306