2017-09-03 126 views
-1

我在我的Google驱动器中共享文件夹/文件到'A'。应用脚本谷歌驱动器自动删除编辑器

但现在我试图停止共享'A'。

我试图停止使用应用程序脚本共享所有文件夹/文件,但应用程序脚本无法执行超过5分钟。

应用程序脚本有没有更好的解决方案?

+1

通过DriveApp.searchFiles(searchParams)获取文件的FileIterator之后,您可以使用我在此处描述的解决方案击败5分钟的执行配额https://stackoverflow.com/questions/45985025/optimizing-google-sheets -appendrow/45987178#45987178 –

回答

0

你是否超过了5分钟,因为你正在迭代很多文件?顺便说一句,可能最好是使用高级API来更快地执行此操作(这是来自我的个人经验,它可能不是真实的,但避免FileIterators往往会加快速度)。另外,如果您正在使用DriveApp.getFiles()而不是通过直接搜索正确的代码进行迭代,那么您正在遍历驱动器中的所有文件,并且需要很多。

使用高级API,您只能遍历用户A可以修改/读取的文件(即使达到5分钟,如果再次运行该功能,您已经修改的文件/文件夹将会是没有考虑到查询)。

文件列表可以通过获得(假设:用户A具有邮件地址[email protected]):

var files = Drive.Files.list({ 
    q: '"[email protected]" in readers or "[email protected]" 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,文件的实际MIME类型,如PDF文件的application/pdf)来检查此问题。

免责声明:你必须使两个AppScript和谷歌控制台的高级API。这很容易,只需仔细阅读the instructions

测试:我测试了这个解决方案与我的一位同事共享的文件。我们在拥有超过10000个文件的共享文件夹中,并且我成功地遍历所有文件而没有达到极限。 DriveApp回调达到极限。但是,再次,这是个人测试,谨慎对待。

+0

真的非常感谢您的回答。我还有1个问题。执行时间仅为5分钟“应用程序脚本”执行时间吗? 还是“连接到谷歌服务的时间”? – Nocome

+0

我认为两者的总和... –

相关问题