Записать файл на Google Drive без ошибок, но нет файла в папке Drive - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь, чтобы пользователь google drive api перенес файлы из облачного хранилища google на google drive. После того, как я запустил этот код в облачной функции, не выдается никакой ошибки, но я не увидел ни одного файла в папке на диске. Моя папка диска установлена ​​как общедоступная для тестирования. Кто-нибудь знает эту проблему или есть подсказка о том, как устранить неполадки?

Мой исходный код, как показано ниже:


const Storage = require('@google-cloud/storage');
const fs = require('fs');
const {google} = require('googleapis');
const apiKey = 'xxxxxxxx';
const storage = Storage();

exports.GCS2Drive = (event, context) => {
  const auth = apiKey;
  const downloadLink = event.mediaLink;
  const fileName = event.name;
  console.log(downloadLink);
  console.log(fileName);
  const filePath = downloadLink.toString();

  const drive = google.drive({version: 'v3', auth});
  var folderId ='XXXXXXXXX';
  var fileMetadata = {
    'name': fileName,
    parents: [folderId]
  };

  var media = {
    mimeType: 'text/csv',
    body: fs.createReadStream(filePath)
  };

  drive.files.create({
    resource: fileMetadata,
    media: media,
    fields: 'id'
  },function (err, file) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    console.log(file.id);}
  }
  )

  console.log(`complete`);
};

1 Ответ

0 голосов
/ 17 октября 2019

Что вам нужно сделать, это включить the drive.files.create() метод в обещание.

Объект Promise представляет значение, которое может быть еще недоступно, но будет разрешено в определенный момент в будущем. Он позволяет писать асинхронный код более синхронно.

Ниже я включаю некоторые статьи, в которых подробно объясняется, как использовать обещания.

Как писать обещания в JavaScript

Обещания JavaScript

Дайте мне знать, если это полезно.

...