我的Google App脚本在某些时间后停止工作。以下代码更改文件权限。在我的文件夹中有大约1万个文件。当我更改1〜2K文件共享权限脚本后运行脚本时,停止工作。反正有解决问题的方法吗?
function myFunction() {
var folderId = "ID";
var files = DriveApp.getFolderById(folderId).getFiles();
var result = [];
while (files.hasNext()) {
var file = files.next();
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
var temp = {
file_name: file.getName(),
url: "http://drive.google.com/uc?export=view&id=" + file.getId(),
};
result.push(temp);
};
}
答案 0 :(得分:1)
有几种解决方法,从升级帐户以授予访问权限到更长的超时时间,您还可以使脚本使用cache service并在超时之前存储迭代状态,然后使用此值存储在缓存中。
尽管如此,所有这些对于您要尝试的工作来说可能都太多了:Drive的权限具有继承性。 这是什么意思?这意味着,如果更改任何文件夹上的权限设置,您将覆盖该文件夹上每个文件的权限。
总而言之,您实际上不需要通过所有文件进行任何迭代,更改该文件夹的权限就可以了。
Check this docs in case of doubt.
用于更改文件夹权限及其所有包含文件的有效代码:
function myFunction() {
var folder = DriveApp.getFolderById("YOUR_FOLDER_ID");
folder.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
}
这可行,但是由于文件夹中的大量文件传播可能需要一些时间(长达几个小时),请耐心等待,明天再检查。