gpt4 book ai didi

google-apps-script - 使用 Apps 脚本在 Google 共享驱动器(团队驱动器)文件夹之间移动文件

转载 作者:行者123 更新时间:2023-12-04 17:30:34 26 4
gpt4 key购买 nike

我正在为共享驱动器(团队驱动器)创建一个工作流,其中我在团队驱动器下有 3 个文件夹:
被允许
得到正式认可的
拒绝了
我正在从 TO BE APPROVED 文件夹发送文档以供批准,如果用户批准,则该文档应移至 APPROVED 文件夹。 REJECTED 的逻辑相同。
现在我的问题是如何在共享驱动器文件夹之间移动文档。 DriveApp.getFolderById(folderId).addFile()无法正常工作,因为我在 Team Drive 中不能有多个父级。 DriveApp.getFolderById(folderId).createFile()正在工作,但它正在创建一个带有新 ID 的全新文件,这不符合我的批准工作流程的目的,因为这是一个全新的文件。
有没有办法移动文件或复制/替换任何不会更改我文件 ID 的操作?我也尝试过 REST API,但找不到任何。

最佳答案

好吧,看起来我找到了答案,通过 REST API 我可以更新文件的父级。我已经打了那个电话,它正在工作。

这是示例。

var apiUrl = "https://www.googleapis.com/drive/v3/files/fileId?addParents=newFolderId&removeParents=oldFolderId&supportsTeamDrives=true";
var token = ScriptApp.getOAuthToken();
var header = {"Authorization":"Bearer " + token};
var options = {
"method":"PATCH",
"headers": header
};
var res = UrlFetchApp.fetch(apiUrl, options);

更新
使用高级服务 API 我们可以实现相同的目标,这是我从 收到的答案Aliaksei Ivaneichyk
function moveFileToFolder(fileId, newFolderId) {  
var file = Drive.Files.get(fileId, {supportsTeamDrives: true});

Drive.Files.patch(file, fileId, {
removeParents: file.parents.map(function(f) { return f.id; }),
addParents: [newFolderId],
supportsTeamDrives: true
});
}

如果您使用 Appscript,则需要在此处启用 Drive SDK 高级服务。在 Appmaker 的情况下,在设置选项中将 Drive SDK 添加为服务。

关于google-apps-script - 使用 Apps 脚本在 Google 共享驱动器(团队驱动器)文件夹之间移动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49670353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com