我有nodejs lamda函数,它从s3存储桶中读取s3文件,并由使用Lamda代理的api网关提供服务
function readS3(bucket,objectName){
return new Promise((resolve, reject) => {
AWS.S3.getObject({
Bucket: bucket,
Key: objectName
}, function (err, data) {
if (err) {
console.log('cannot read s3');
console.log(err, err.stack);
reject(err);
} else {
resolve(data);
}
});
});
}
readS3(bucket,objName).then((data)=>{
let response = {
statusCode:200,
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true,
"Content-Type": 'application/pdf',
"Content-Disposition": 'filename=test.pdf'
},
body: data.Body.toString('utf-8')
};
callback(null,response);
})
代码工作正常,但下载的pdf文件错过了图像和一些自定义格式。表格和粗体等基本格式很好。 S3存储桶中的pdf很好,当我直接从S3下载时,它没有任何问题。 我在.toString方法中尝试过不同的编码,但都没有。 这是因为我正在阅读s3中的内容,还是api网关的问题?