使用复制Google Apps脚本文件.Google Apps脚本转换为teamDrive



我正在尝试使用应用脚本将Google Apps脚本文件的副本放入共享云端硬盘中。

我的代码如下所示:

function copyFileToSharedDrive(){
var sharedDriveId = "sharedriveidcomeshere";
var sharedDrive = DriveApp.getFolderById(sharedDriveId);
var appsScriptFileId = "appsscriptfileidcomeshere";
DriveApp.getFileById(appsScriptFileId).makeCopy(sharedDrive).setName("This is a copy of the original apps script file");
}

但是,结果是应用脚本文件的副本,但它位于我的 Google 云端硬盘的根文件夹中,而不是共享云端硬盘中。

如果我对电子表格,Google文档或幻灯片执行完全相同的操作,则代码就像一个魅力。

我还尝试了高级Google服务并使用了Drive API。那里没有运气...文件仍在执行代码的用户的根文件夹中创建。

Drive.Files.copy(
{title: "This is a copy of the appsscript file", parents: [{id: sharedDriveId}]},
"appsScriptFileId",
{supportsAllDrives: true}
);

有什么帮助吗?

这个答案怎么样?

修改点:

  • 很遗憾,Google Apps 脚本文件无法使用makeCopy直接复制到共享云端硬盘。该文件将复制到 MyDrive 的根驱动器。我认为这可能是一个错误。

那么在这种情况下,使用云端硬盘 API 怎么样?修改脚本后,它将变为如下。

修改后的脚本:

在运行脚本之前,请在高级 Google 服务中启用云端硬盘 API。

function copyFileToSharedDrive(){
var sharedDriveId = "sharedriveidcomeshere";
var appsScriptFileId = "appsscriptfileidcomeshere";
Drive.Files.copy(
{title: "This is a copy of the original apps script file", parents: [{id: sharedDriveId}]},
appsScriptFileId,
{supportsAllDrives: true}
);
}

引用:

  • 高级谷歌服务
  • 文件:复制

添加:

  • 您希望将 Google 企业应用套件文件复制到共享云端硬盘中的指定文件夹中。

为此,以下脚本怎么样?在此脚本中,使用以。

  1. 复制谷歌企业应用套件文件。此时,文件将创建到根文件夹。
  2. 使用云端硬盘 API 的 Files.patch 方法将 GAS 文件移至共享云端硬盘中的特定文件夹。

示例脚本:

function copyFileToSharedDrive(){
var destinationFolderId = "###";  // Please set the destination folder ID of shared Drive.
var appsScriptFileId = "###";  // Please set the GAS script ID.
var file = DriveApp.getFileById(appsScriptFileId)
var copiedFile = file.makeCopy().setName(file.getName()).getId();
Drive.Files.patch(
{title: "This is a copy of the original apps script file"},
copiedFile,
{removeParents: "root", addParents: destinationFolderId, supportsAllDrives: true}
);
}

注意:

  • 大约supportsAllDrives,官方文件如下。

    已弃用 - 请求应用程序是否同时支持"我的云端硬盘"和共享云端硬盘。此参数仅在 2020 年 6 月 1 日之前有效。之后,假定所有应用程序都支持共享云端硬盘。

    • 这样,从 2020 年 6 月 1 日起,即使不使用supportsAllDrives,也可以使用共享云端硬盘。

参考:

  • 文件:补丁

相关内容

  • 没有找到相关文章

最新更新