使用NodeJS Express Restful API将Google驱动器API 3.0下载文件导入PostMan

时间:2018-09-28 08:58:08

标签: node.js express google-api google-drive-api

我正在努力使下载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' });
  }

0 个答案:

没有答案