问题描述
场景
我正在运行 VueJs 客户端、NodeJs Restify API 服务器和 official Docker Image 之外的 Tika 服务器。用户使用包含要解析的 PDF 文件的 POST
进行 formData
调用。 API 服务器接收 POST 调用,我将 PDF 保存在服务器上。 API 服务器应将文件放入 Tika 服务器上的 unpack/all 端点,并接收包含文本文件、元数据文件和 PDF 中的图像集的 zip。然后我会处理 zip 并将一些数据传回给客户端。
问题
我创建了一个包含要使用 let parsingData = fs.createReadStream(requestFilename);
或 let parsingData = fs.readFileSync(requestFilename);
解析的文件的缓冲区,将 axios 数据字段设置为 parsingData,然后提出我的请求。当我收到来自 Tika-server 的响应时,Tika-server 似乎将请求视为空;在 zip 中,没有图像,TEXT 文件为空,METADATA。
当我通过 CURL curl -T pdf_w_images_and_text.pdf http://localhost:9998/unpack/all -H "X-Tika-PDFExtractInlineImages: true" -H "X-Tika-PDFExtractUniqueInlineImagesOnly: true"> tika-response.zip
向 Tika 服务器发出以下请求时,我得到一个响应 zip 文件,其中包含准确的文本、元数据、剥离的图像。
代码
let parsingData = fs.createReadStream('pdf_w_images_and_text.pdf');
axios({
method: 'PUT',url: 'http://localhost:9998/unpack/all',data: parsingData,responseType: 'arraybuffer',headers: {
'X-Tika-PDFExtractInlineImages': 'true','X-Tika-PDFExtractUniqueInlineImagesOnly': 'true'
},})
.then((response) => {
console.log('Tika-server response recieved');
const outputFilename = __dirname+'\\output.zip';
console.log('Attempting to convert Tika-server response data to ' + outputFilename);
fs.writeFileSync(outputFilename,response.data);
if (fs.existsSync(outputFilename)) {
console.log('Tika-server response data saved at ' + outputFilename);
}
})
.catch(function (error) {
console.error(error);
});
问题
如何对我的文件进行编码并将其附加到我在 NodeJs 中的 PUT
请求,以便 Tika 服务器在我通过 CURL
发出请求时对其进行处理?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)