无法使用API​​从Google云端硬盘获取/下载文件

时间:2019-05-10 23:43:53

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

当我尝试获取文件时,我的请求通过了,但最终得到的文件是正确的类型,但已损坏。

文件包含:

{
 "kind": "drive#file",
 "id": <ID of the File>,
 "name": <Name of the File>,
 "mimeType": <Type>
}

这与文件是图像文件还是文本文件无关。

function getFile(auth, file, path, call) {
  console.log(file)
  var dest = fs.createWriteStream(path + "/" + file.name);

  const drive = google.drive({version: 'v3', auth});
  drive.files.get({fileId: file.id, mimeType: 'image/jpeg'}, {responseType: "stream"},
    function(err, res) {
       res.data
       .on("end", () => {
          console.log("Done");
       })
       .on("error", err => {
          console.log("Error", err);
       })
       .pipe(dest);
    })
}

1 个答案:

答案 0 :(得分:0)

此修改如何?

发件人:

drive.files.get({fileId: file.id, mimeType: 'image/jpeg'}, {responseType: "stream"},

收件人:

drive.files.get({fileId: file.id, alt: "media"}, {responseType: "stream"},

注意:

    Drive API中的
  • files.get方法无法转换mimeType。
  • 如果要通过转换mimeType导出Google文档(电子表格,文档,幻灯片),请按以下步骤修改上面的脚本。

    drive.files.export({fileId: file.id, mimeType: 'image/jpeg'}, {responseType: "stream"},
    

参考:

如果我误解了您的问题,而这不是您想要的结果,我深表歉意。