Google驱动API下载文件NodeJS [英] Google drive API downloading file nodejs

查看:28
本文介绍了Google驱动API下载文件NodeJS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用node.js中的Google drive APIv3获取文件的内容。 我在这篇文档中读到,我从drive.files.get({fileId, alt: 'media'})得到一个流,但事实并非如此。我得到了承诺。

https://developers.google.com/drive/api/v3/manage-downloads

有人能告诉我如何从该方法获取流吗?

推荐答案

我相信您的目标和情况如下。

  • 您要从drive.files.get的方法检索蒸汽类型。
  • 您希望将googleapis与Node.js配合使用来实现此目的。
  • 您已经完成了使用驱动器API的授权过程。

对于这个问题,这个答案怎么样?在这种情况下,请使用responseTypeRef

模式1:

在此模式中,文件作为流类型下载,并另存为文件。

示例脚本:

var dest = fs.createWriteStream("###");  // Please set the filename of the saved file.
drive.files.get(
  {fileId: id, alt: "media"},
  {responseType: "stream"},
  (err, {data}) => {
    if (err) {
      console.log(err);
      return;
    }
    data
      .on("end", () => console.log("Done."))
      .on("error", (err) => {
        console.log(err);
        return process.exit();
      })
      .pipe(dest);
  }
);

模式2:

在此模式中,文件作为流类型下载并放入缓冲区。

示例脚本:

drive.files.get(
  {fileId: id, alt: "media",},
  {responseType: "stream"},
  (err, { data }) => {
    if (err) {
      console.log(err);
      return;
    }
    let buf = [];
    data.on("data", (e) => buf.push(e));
    data.on("end", () => {
      const buffer = Buffer.concat(buf);
      console.log(buffer);
    });
  }
);

引用:

这篇关于Google驱动API下载文件NodeJS的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆