2

我刚刚阅读了很多论坛消息和一些 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{代码}

这个也不行。

怎么了?你能帮助我吗?

4

0 回答 0