aws-lambda - API 网关无法解码 base64

标签 aws-lambda aws-api-gateway

我正在尝试使用基于节点的 lambda 函数使用 API 网关从 s3 返回 jpeg 图像。

我的 Lambda 函数读作:

s3.getObject(params).promise().then((result) => { 
    let resp = {
                statusCode: 200,
                headers: {
                    'Content-Type': 'image/jpeg'
                },
                body: result.Body.toString('base64'),
                isBase64Encoded: true
    };          
    callback(null, resp);
});

我还将 API 网关中的集成响应修改为“转换为二进制(如果需要)”。当我尝试测试此函数时,收到错误“由于配置错误执行失败:无法对正文进行 base64 解码。”。

是否缺少允许我检索 base64 编码文件的步骤?

最佳答案

我不确定,但是您是否尝试过使用 this 而不是直接在您的对象上调用的 toString ?

Buffer.from(result.Body).toString('base64')

关于aws-lambda - API 网关无法解码 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43325993/

相关文章:

amazon-web-services - 如何使用 Micronaut 在 Amazon Lambda 上创建 CRUD API

javascript - AWS 网关超时

amazon-web-services - 如何使用vscode AWS扩展名编辑Lambda(GO)

.net - AWS DotNetCore Lambda - 一个解决方案中的多个项目

node.js - 如何忽略长时间执行的 AWS Lambda 超时限制 300 秒?

python-2.7 - 如何让 Amazon API Gateway 只接受来自特定主机的请求

amazon-web-services - 使 AWS API Gateway 仅作为 SNS 订阅终端节点进行访问

amazon-web-services - 我如何利用 AWS::Serverless::LayerVersion 以便在我的 AWS Lambda 函数中使用外部库

javascript - AWS API Gateway Websocket Api - 向所有连接的客户端广播消息

javascript - Node.js : "Cannot Find Module" error when a source file is put into a different folder