我有权限审核Google脚本& Google Sheet准备好在脚本运行时存储输出。如何在脚本处理时将脚本保存到工作表中,同时避免执行时间限制(5或6分钟)?
Google云端硬盘我的扫描速度大于6GB,因此我认为可以提高脚本的效率,但是达到执行限制可能是不可避免的。
Google脚本: / * ====================================== 谁可以在Google云端硬盘中查看您的文件 ====================================== Amit Agarwal撰写于2014年1月11日 教程:: http://labnol.org/?p=28237 * /
function ScanGoogleDrive() {
var files = DriveApp.getFiles();
var timezone = Session.getScriptTimeZone();
var email = Session.getActiveUser().getEmail();
var file, date, access, url, permission;
var privacy, view, viewers, edit, editors;
var rows = [["File Name", "Who has access?", "Date Created"]];
while ( files.hasNext() ) {
file = files.next();
try {
access = file.getSharingAccess();
permission = file.getSharingPermission();
viewers = file.getViewers();
editors = file.getEditors();
view = [];
edit = [];
date = Utilities.formatDate(file.getDateCreated(), timezone, "yyyy-MM-dd HH:mm")
url = '<a href="' + file.getUrl() + '">' + file.getName() + '</a>';
for (var v=0; v<viewers.length; v++) {
view.push(viewers[v].getName() + " " + viewers[v].getEmail());
}
for (var ed=0; ed<editors.length; ed++) {
edit.push(editors[ed].getName() + " " + editors[ed].getEmail());
}
switch(access) {
case DriveApp.Access.PRIVATE:
privacy = "Private";
break;
case DriveApp.Access.ANYONE:
privacy = "Anyone";
break;
case DriveApp.Access.ANYONE_WITH_LINK:
privacy = "Anyone with a link";
break;
case DriveApp.Access.DOMAIN:
privacy = "Anyone inside domain";
break;
case DriveApp.Access.DOMAIN_WITH_LINK:
privacy = "Anyone inside domain who has the link";
break;
default:
privacy = "Unknown";
}
switch(permission) {
case DriveApp.Permission.COMMENT:
permission = "can comment";
break;
case DriveApp.Permission.VIEW:
permission = "can view";
break;
case DriveApp.Permission.EDIT:
permission = "can edit";
break;
default:
permission = "";
}
view = view.join(", ");
edit = edit.join(", ");
privacy += (permission === "" ? "" : " " + permission)
+ (edit === "" ? "" : ", " + edit + " can edit")
+ (view === "" ? "" : ", " + view + " can view")
rows.push([url, privacy, date]);
} catch (e) {Logger.log(e.toString()); Logger.log(file.getName());};
}
var html = "<p>File Permissions Report for Google Drive</p>";
html += "<table><tr><td><b>" + rows[0].join("</b></td><td><b>") + "</b></td></tr>";
for (var i=1; i<rows.length; i++) {
html += "<tr><td>" + rows[i].join("</td><td>") + "</td></tr>";
}
html += "</table><br>For help, refer to this <a href='http://www.labnol.org/internet/google-drive-access/28237/'>online tutorial</a> written by <a href='http://ctrlq.org/'>Amit Agarwal</a>.";
MailApp.sendEmail(email, "Google Drive - File Permissions Report", "", {htmlBody: html});
}
谢谢!
答案 0 :(得分:0)
不幸的是,限制是由Google服务的配额设定的。所有使用任何Google服务的脚本都受此类限制的约束。您可以通过以下链接了解有关它的更多信息:https://developers.google.com/apps-script/guides/services/quotas