Загрузите файл с Google drive api 3.0 с помощью API-интерфейса NodeJS Express в PostMan. - PullRequest
0 голосов
/ 28 сентября 2018

Я изо всех сил пытаюсь заставить мой API загрузки работать как ожидалось.Я использую NodeJS и могу перечислять и загружать файлы в папки, созданные с помощью моего API.

Моя цель - получить двоичные данные с google-диска для файла и передать их клиенту [PostMan прямо сейчас].Я видел пример в 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' });
  }
...