我正在将Google云端硬盘中的文件夹/文件共享为“A”。
但现在我正试图停止分享'A'。
我尝试停止使用应用脚本共享所有文件夹/文件,但应用脚本无法执行超过5分钟。
apps脚本有更好的解决方案吗?
答案 0 :(得分:0)
你是否超过了5分钟,因为你正在迭代很多的文件?
顺便说一下,使用高级API来更快地执行此操作可能更好(这来自我的个人经验,它可能不是真的,但避免FileIterators往往会加快速度向上)。此外,如果您使用DriveApp.getFiles()
进行迭代而不是直接搜索正确的文件,那么您将迭代驱动器中的所有文件,这需要花费很多时间。
使用高级API,您只能迭代用户A
可以修改/读取的文件(即使您达到5分钟,如果再次运行该功能,您已经拥有的文件/文件夹修改将不会被查询考虑在内。
可以通过(假设:用户A
拥有邮件地址a.mail@gmail.com
)获取文件列表:
var files = Drive.Files.list({
q: '"a.mail@gmail.com" in readers or "a.mail@gmail.com" in writers'
});
files.items.forEach(file => {
var file_app = DriveApp.getFileById(file.id);
// Do here what you need to stop sharing.
});
列表获取文件和文件夹。您可以使用属性file.mimeType
进行检查(文件夹为application/vnd.google-apps.folder
,文件为实际mimetype,如PDF格式为application/pdf
。
免责声明:您必须在AppScript和Google控制台中启用高级API。这很简单,只需仔细阅读the instructions。
测试:我针对与我的一位同事共享的文件测试了此解决方案。我们在共享文件夹中有超过10000个文件,我成功迭代所有文件而没有达到限制。 DriveApp
回调达到了极限。但同样,这是个人测试,谨慎对待。