通过API Gateway + Lambda发送PNG响应

时间:2018-02-20 18:02:42

标签: node.js amazon-web-services aws-lambda aws-api-gateway api-gateway

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

这个也不起作用。

有什么问题?你能救我吗?

0 个答案:

没有答案