首页 > 解决方案 > 如何解决谷歌应用脚​​本超时问题

问题描述

我的谷歌应用脚​​本在特定时间后停止工作。以下代码更改文件权限。在我的文件夹中有大约 10K 个文件。当我在更改 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

解决方案


有几种解决方法,从升级您的帐户到授予对更长超时的访问权限,您还可以使脚本与缓存服务一起使用并存储超时之前的迭代状态,然后使用存储在缓存中的此值再次运行脚本.

虽然,所有这一切都可能与您尝试做的事情有很大关系:云端硬盘的权限具有继承性。这是什么意思?这意味着,如果您更改任何文件夹的权限设置,您将覆盖该文件夹上每个文件的权限。

总之,您真的不需要对所有文件进行任何迭代,更改该文件夹的权限就完成了。

如有疑问,请查看此文档。

更改文件夹权限及其所有包含文件的工作代码:

  function myFunction() {
  var folder = DriveApp.getFolderById("YOUR_FOLDER_ID");
  folder.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
  }

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


推荐阅读