我刚刚阅读了很多论坛消息和一些stackoverflow消息。我尝试了一切。但是,我无法通过API网关发送PNG响应。我在API网关中使用LAMBDA_PROXY。
在Lambda中,我有一个这样的代码:
exports.handler = (event, context, callback) => {
// some code here ...
image.encode("png",function(err, buffer) {
var generated = buffer.toString('base64');
var response = {
statusCode: 200,
headers:
{
"Content-Type": "image/png"
},
body: generated,
isBase64Encoded: true
};
callback(null, response);
});
}
二元媒体类型:
{
"apiKeySource": "HEADER",
"name": "testimage",
"createdDate": 1518592036,
"binaryMediaTypes": [
"image/png"
],
"endpointConfiguration": {
"types": [
"EDGE"
]
},
"id": "xxx"
}
内容处理类型:
{
"statusCode": "200",
"contentHandling": "CONVERT_TO_BINARY",
"responseTemplates": {
"application/json": null
}
}
当我在浏览器上打开API网关URL时,我将image / png视为内容类型。但响应是编码的。所以,浏览器无法解释它。我看到黑屏。
我发送了一个这样的CURL请求:{code} curl -H"接受:image / png" https://xxx.execute-api.eu-central-1.amazonaws.com/testimage/myimage> /opt/1.png{code}
这个也不起作用。
有什么问题?你能救我吗?