我刚刚阅读了很多论坛消息和一些 stackoverflow 消息。我什么都试过了。但是,我无法通过 API Gateway 发送 PNG 响应。我在 API Gateway 中使用 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 Gateway URL 时,我看到 image/png 作为内容类型。但响应是编码的。所以,浏览器无法解释它。我看到黑屏。
我发送了这样的 CURL 请求:{code}curl -H "Accept: image/png" https://xxx.execute-api.eu-central-1.amazonaws.com/testimage/myimage > /opt/1。 png{代码}
这个也不行。
怎么了?你能帮助我吗?