我的单位要改用 Google Business 帐户,每个人都需要将他们的云端硬盘文件转移到新帐户。Drive 不允许在这些帐户之间转移所有权,因此我创建了一个脚本来将文件和文件夹从旧帐户复制到新帐户。(旧帐户的内容已移动到与新帐户共享的文件夹中。)
这是我到目前为止所拥有的:
function copyDrive() {
var originFolder = DriveApp.getFolderById(originFolderID);
var destination = DriveApp.getFolderById(destinationID);
copyFiles(originFolder, destination);
};
function copyFiles(passedFolder, targetFolder) {
var fileContents = passedFolder.getFiles();
var file;
var fileName;
while(fileContents.hasNext()) {
file = fileContents.next();
fileName = file.getName();
file.makeCopy(fileName, targetFolder);
}
copySubFolders(passedFolder, targetFolder);
};
function copySubFolders(passedFolder, targetFolder) {
var folderContents = passedFolder.getFolders();
var folder;
var folderName;
while(folderContents.hasNext()) {
folder = folderContents.next();
folderName = folder.getName();
var subFolderCopy = targetFolder.createFolder(folderName);
copyFiles(folder, subFolderCopy);
}
};
Run Code Online (Sandbox Code Playgroud)
请原谅任何不雅;我是新手。该脚本实际上运行良好并保留了文件夹结构,但是在复制了大约 150 个文件和文件夹后它会超时。我一直在研究如何使用延续令牌,并且我已经仔细阅读了这篇文章。我想我被困在了概念层面,因为我不确定延续令牌将如何与我设置的递归函数进行交互。看起来我最终会得到一堆我的copySubFolders …
recursion session-timeout google-apps-script google-drive-api