Невозможно получить / загрузить файл с Google Drive с помощью API - PullRequest
0 голосов
/ 11 мая 2019

Когда я пытаюсь получить файл, мой запрос проходит, но я получаю файл правильного типа, но поврежденный.

Файл содержит:

{
 "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 голосов
/ 11 мая 2019

Как насчет этой модификации?

От:

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

До:

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

Примечание:

  • files.getМетод в Drive API не может преобразовать mimeType.
  • Если вы хотите экспортировать документы Google (электронные таблицы, документы, слайды) путем преобразования mimeType, измените приведенный выше скрипт следующим образом.

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

Ссылка:

Если я неправильно понял ваш вопрос, и это не тот результат, который вам нуженПрошу прощения.

...