Return excel 来自 AWS Lambda 函数的文件

Return excel file from AWS Lambda function

我正在尝试通过 Lambda return 一个 excel 文件。成功了,但是内容只是文件的base64编码字符串

代码如下:

const xl = require("excel4node")

module.exports.handler = async () => {
    var wb = new xl.Workbook()
    var ws = wb.addWorksheet('Sheet 1')
    const cols = [ "col1", "col2" ]
    cols.forEach((c,i) => { ws.cell(1, i+1).string(c) })
    const buffer = await wb.writeToBuffer()
    return {
        statusCode: 200,
        headers: {
            'Access-Control-Allow-Origin': "*",
            'Access-Control-Allow-Methods': "*",
            'Content-type' : "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            'Content-Disposition': `attachment; filename="test.xlsx"`,
        },
        isBase64Encoded: true,
        body: buffer.toString('base64')
    }
}

和this is what's generated

我正在使用无服务器框架,我已将 contentHandling 配置设置为 CONVERT_TO_BINARY。

非常感谢,

解决了!重读上面@jarmod 的回答后,发现我没有将 API 二进制媒体类型设置为 '*/*'

在无服务器配置文件中添加了 apiGateWay.binaryMediaTypes 并且有效