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

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

}
zhouzhou99 回答:如何解决Google App脚本超时问题

有几种解决方法,从升级帐户以授予访问权限到更长的超时时间,您还可以使脚本使用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);
  }

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

本文链接:https://www.f2er.com/3102627.html

大家都在问