如何使用 Google API Node.js 客户端更新 Google 驱动器上的现有文件?

How to update existing file on Google Drive with the Google API Node.js client?

我正在使用 Google API Node.js client 通过 Node.js 程序管理 Google 驱动器上的文件。

我已成功使用此库下载文件,现在我想将文件的更新版本上传回 Google 驱动器。

documentation 很好地解释了如何在 Google 驱动器:

上创建 文件
var fileMetadata = {
  'name': 'photo.jpg'
};
var media = {
  mimeType: 'image/jpeg',
  body: fs.createReadStream('files/photo.jpg')
};
drive.files.create({
  resource: fileMetadata,
  media: media,
  fields: 'id'
}, function (err, file) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    console.log('File Id: ', file.id);
  }
});

但是,我没有找到任何关于如何用新版本覆盖现有文件的信息。

Stack Overflow 上的其他帖子like this one, as well as the Google docs,仅说明如何直接使用 Rest API 更新文件。

我想知道是否有更简单的方法 – 因为有一个很好的 API 客户端库可以让我创建新文件,当然,它也应该让我更新现有文件吗?

要更新现有文件,请使用 drive.files.update(定义 here)。

drive.files.update({
  fileId: file.id,
  resource: fileMetadata,
  media: media
}, (err, file) => {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    console.log('File Id: ', file.id);
  }
});

请注意,您还可以对 drive.files.createdrive.files.update 使用 promise 接口和 async/await