【问题标题】:Google drive api file.get gives unreadable contentGoogle drive api file.get 提供不可读的内容
【发布时间】:2021-03-15 08:12:39
【问题描述】:

我只需要读取文件的内容(无需下载文件)并将数据存储到我的应用程序中。我可以通过使用此 api“https://www.googleapis.com/drive/v3/files/fileId?alt=media”来获取文件的内容作为响应。但是这个 api 的响应返回一个不可读的格式,像这样 "�dҚ�ȳ:\u0010��$���2�m��L̆����✳ŝ-�lqg�;[����O �s�\u0011�\u001bk\"。

下面是我正在使用的代码。这是 Gdrive api v3。

drive.files.get(
  {
    fileId: fileId,
    alt: "media",
  },
  (err, res) => {
    if (err) {
      console.log("err = ", err);
      return false;
    }

    if (res) {
      console.log("File Details");
      console.log(res);
    }
  }
);

如何获取可读格式的数据?

【问题讨论】:

  • @DaImTo 不。我能够获得数据(文件的内容)作为响应,但它不是可读格式。所以我的问题是如何以可读(普通文本)格式获取数据。谢谢。
  • 您是否尝试下载文件然后打开它?它以二进制数据而不是文本的形式返回,您必须先保存它然后打开文件。
  • 文件类型是什么?正如 DalmTo 所说,您正在下载不可读的二进制内容。
  • @DaImTo 是否无法获取文件内容以响应自身而不是下载文件。如果我问一个愚蠢的问题,我很抱歉。我问这个是因为我使用了下面的 api,它给出了实际的内容作为响应 drive.files.export( { fileId: fileId, mimeType: "text/plain", alt: "media", }, (err, res) => { if (err) { console.log("err = ", err); } if (res) { console.log(res.data); } } );

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


【解决方案1】:

根据您的评论:

我使用了下面的 api,它给出了实际的响应内容

该特定请求中的关键是文件 mimeType 是:

mimeType: "text/plain"

这意味着这个文件的内容只是文本,所以你可以阅读内容没有问题。

但是,在您的原始问题中,您请求的文件似乎不是纯文本。也许是 PDF 或 Word .doc。这些文件以binary 编码,因此人类无法读取它们的内容。要阅读内容,您需要相应的程序。

虽然你没有提供完整的代码,所以我不能确定你要下载什么类型的文件。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多