我正在努力使下载API正常工作。我正在使用NodeJS,并且能够列出文件并将其上传到通过API创建的文件夹中。
我的目标是从Google驱动器获取文件的二进制数据,然后将其传递给客户端[PostMan now]。我已经在Google API中看到了一个下载文件的示例。但是,这正在下载到NodeServer。我试图跳过这一部分,直接将二进制数据传递给邮递员。
下面是代码,如果有人可以,请更正我的错误。没有错误,由于某种原因永远不会调用“ done”块。我正在得到“我完成了”。任何帮助表示赞赏。
exports.downloadreport = (req, res) => {
try {
const fileId = '15eesPXvF_DdBJEs1OvbZVrcNvD7y5aic';
// let dest = fs.createWriteStream('/EditBudgetManager.cs');
const buffers = [];
drive.files.get({
auth: req.googledriveAuth,
fileId,
alt: 'media',
}, {
responseType: 'stream',
}, (err, response) => {
// logger.info(response);
if (err) { logger.error(err); }
response.data.on('error', (err1) => {
console.log(err1);
}).on('end', () => {
console.log('I am done');
res.end(Buffer.concat(buffers));
}).on('data', (chunk) => {
// This block is not getting called
buffers.push(chunk);
});
});
} catch (error) {
res.status(500).header('success', false).json({ message: 'Error while downloading report', errorcode: 'HRSMEH012' });
}