我有一个node.js Lambda函数,可以从S3存储桶中下载.docx
文件。
const object = await s3.getObject({
Bucket: bucket,Key: templateName,}).promise();
return object.Body;
然后我要获取此文件,并使用axios将其发布到另一个API,以将其转换为PDF(Gotenberg实例)。
但是,我一直返回两个空白页作为转换结果,这表明它发送的是一些数据,因为它是两页的Word文档。
我当前正在使用object.Body
值(记录时为缓冲区<Buffer 50 4b 03 04 14 [...]
)。
然后,我正尝试将其放入对Gotenberg的POST请求中:
const formData = new FormData();
formData.append('files',object.Body,{ filename: 'suitability-purchase.docx' });
const response = await axios.post(`${documentConversionService}/convert/office`,formData,{
headers: {
...formData.getHeaders()
}
});
console.log('Conversion finished',response);
return response.data;
哪个会返回两个空白页面的PDF文档。
我的问题是,如何正确发布FormData用于内存中的文件数据?我只是想念一些明显的东西吗?
我已经从S3手动下载了文档,并使用Postman将其发送到Gotenberg API,并且工作正常。我认为原始文档没有任何问题; 似乎是我在代码中发送文档的方式。
我尝试了使用表单数据进行axios调用的不同方式的几种变体,但无法使其不生成空白页。