我的任务是在后端读取PDF文件,并以编码格式发送给客户端,并带有相应的响应标头以在客户端下载文件。
我正在使用lambda代理与AWS API网关集成,并且在这种情况下,我具有Express服务器。将Custom Lambda集成与api网关配合使用时,我可以从邮递员下载PDF,但是当我使用代理集成时,它将为我下载空白pdf内容文件。
在两种情况下,我都是从API网关向客户端发送二进制数据。但是在自定义插入中,我通过启用对CONVERT_TO_BINARY
的内容处理在API网关控制台中更改了此设置。但是在代理中,我是通过代码完成的,并将二进制文件发送到客户端。
file = fs.readFileSync('/tmp/statistics.pdf');
var base64 = file.toString('base64');
var buff = new Buffer(base64, 'base64');
var binary = buff.toString('binary');
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': 'attachment;
filename="statistics.pdf"'
});
res.end(binary);
这是我从API网关向客户端发送数据的示例代码。请帮助我解决这个问题。我对此很困惑。