如何解决Google App脚本超时问题

问题描述 投票:0回答:1

我的Google应用程序脚本在某些时间后停止工作。以下代码更改文件权限。在我的文件夹中有大约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);
  };

}
google-apps-script
1个回答
1
投票

[有几种解决方法,从升级帐户以授予对更长超时的访问权限,您还可以使脚本使用cache service并在超时之前存储迭代状态,然后再次使用存储的该值运行脚本在缓存上。

尽管,对于您要尝试的所有工作,这些可能都太多了:云端硬盘的权限具有继承性。这是什么意思?这意味着,如果更改任何文件夹上的权限设置,您将覆盖该文件夹上每个文件的权限。

总而言之,您实际上不需要通过所有文件进行任何迭代,更改该文件夹的权限就可以了。

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);
  }

这是可行的,但是由于文件夹中的大量文件传播可能会花费一些时间,甚至长达几个小时,请耐心等待,明天再检查。

© www.soinside.com 2019 - 2024. All rights reserved.