Google 驱动器 API - 复制并替换?

Google Drive API - Copy and Replace?

我有一个使用 google 驱动器 API 的用例,我需要根据 ID 将现有文件 (A) 替换为另一个文件 (B)。我需要保留要替换的 ID 文件 (A)(因此调用 drive.copy 将不起作用,因为它会创建一个新 ID)。

下载文件 (B) 的最佳方法是使用 get 调用然后对文件 (A) 进行更新调用并传递来自 B 的数据流吗?

或者是否有 API 端点可以完成此任务?

解释:

没有这样的功能,因为您必须生成文件 (B) 的副本,因此创建一个具有全新 ID 的文件。

解决方法是删除文件 (A) 的内容并将文件 (B) 的内容复制到文件 (A),以便两个文件完全相同。如果是 Spreadsheet 场景,我有一个代码片段可以向您展示您可以遵循的逻辑。

解决方案/解决方法 - 电子表格文件:

function myFunction() {
  

  // Get Spreadsheet A and B
  const ssA = SpreadsheetApp.openById('ID of Spreadsheet A');
  const ssB = SpreadsheetApp.openById('ID of Spreadsheet B');

  // Get all sheets for both Spreadsheet A and B
  const a_sheets = ssA.getSheets();
  const b_sheets = ssB.getSheets();
  
  // Create a temporary sheet so we can delete all the old sheets from Spreadsheet A
  const temp_sheet = ssA.insertSheet('temporary_sheet')
  
  // Delete all old sheets from Spreadsheet A
  a_sheets.forEach(shA=>ssA.deleteSheet(shA));
  
  // Copy all Spreadsheet B sheets to Spreadsheet A
  b_sheets.forEach(shB=>shB.copyTo(ssA).setName(shB.getSheetName()));
  
  // Delete temporary sheet
  ssA.deleteSheet(temp_sheet);

}

一种非常相似的方法适用于 Folders。即删除文件夹A的内容,将文件夹的内容复制到文件夹B。文件夹A和B的内容相同,但A保留其原始ID。当然,您可以使用 SlidesDocs