Google 驱动器自动过期 - 同时取消共享多个文件?
Google Drive Auto-Expire - Unshare Multiple Files Simultaneously?
晚上好!我是亚伦·艾尔斯 (Aaron Ayres),印第安纳州诺布尔斯维尔的诺布尔斯维尔西中学八年级数学老师。最近,为了全校范围的激励,我的学校正在使用 Google Drive 分享一个 "pass",让被提名的学生在被提名的月份内获得奖励和其他奖励。我们通常有大约 80 名学生每月因他们的辛勤工作而被提名 - 建筑物中的每位教育工作者每月根据多项标准提名一名学生。
我一直在研究让通行证过期的更有效方法,而不是必须手动浏览我的文件夹并在月底取消共享个人通行证。我遇到了 Amit Argawal 的自动过期脚本 (http://www.labnol.org/internet/auto-expire-google-drive-links/27509/),我认为它可能会起作用,但它一次只会使一个文件过期。有没有一种方法可以修改脚本(或创建新脚本)以在脚本编辑器中引用多个可共享的 link,以便对每个学生的通行证的共享访问权限在月底到期?换句话说,有没有办法让脚本在同一日期和时间使所有 80 多个通行证过期?我是 Google 脚本的新手,所以我想知道我是否没有正确格式化我的列表或 URL 引用以便脚本识别多个文件,或者我可以修改脚本以识别数组links 而不是单个变量 url link.
在此先感谢您的帮助!
我希望您的 hand.Please 中有完整的 script,请在列表中列出 URL,并用逗号分隔。每个学生的密码是否不同?否则,您可能只是添加了文件夹的 URL 而根本不更改原始脚本。
但是,请尝试更改脚本的这些部分:
// Enter the full list of URLs(separated with comma) of the public Google Drive file or folder
var URL_LS = ["https://drive.google.com/open?id=0B_NmiOlCM-VTcFp6U1hydTM2MzVCY3AzMUpuTEtVWUhXRXNz", "https://drive.google.com/file/d/0B_NmiOlCM-VTNXFqOU1jTG5JdHJVQ3ZGUGNqZklJNWludllr/view?usp=sharing"] ;
var URL_LN = URL_LS.length;
// Enter the expiry date in YYYY-MM-DD HH:MM format
var EXPIRY_TIME = "2016-02-18 09:46";
再次,将 autoExpire()
替换如下:
function autoExpire() {
var id, asset, i, email, users;
try {
for (var j = 0; j < URL_LN; j++) {
var URL = URL_LS[j];
var id = URL.match(/[-\w]{25,}/g);
if (id) {
id = id[id.length-1];
asset = DriveApp.getFileById(id) ? DriveApp.getFileById(id) : DriveApp.getFolderById(id);
if (asset) {
asset.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.NONE);
asset.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.NONE);
users = asset.getEditors();
for (i in users) {
email = users[i].getEmail();
if (email !== "") {
asset.removeEditor(email);
}
}
users = asset.getViewers();
for (i in users) {
email = users[i].getEmail();
if (email !== "") {
asset.removeViewer(email);
}
}
}
}
}
} catch (e) {
Logger.log(e.toString());
}
}
晚上好!我是亚伦·艾尔斯 (Aaron Ayres),印第安纳州诺布尔斯维尔的诺布尔斯维尔西中学八年级数学老师。最近,为了全校范围的激励,我的学校正在使用 Google Drive 分享一个 "pass",让被提名的学生在被提名的月份内获得奖励和其他奖励。我们通常有大约 80 名学生每月因他们的辛勤工作而被提名 - 建筑物中的每位教育工作者每月根据多项标准提名一名学生。
我一直在研究让通行证过期的更有效方法,而不是必须手动浏览我的文件夹并在月底取消共享个人通行证。我遇到了 Amit Argawal 的自动过期脚本 (http://www.labnol.org/internet/auto-expire-google-drive-links/27509/),我认为它可能会起作用,但它一次只会使一个文件过期。有没有一种方法可以修改脚本(或创建新脚本)以在脚本编辑器中引用多个可共享的 link,以便对每个学生的通行证的共享访问权限在月底到期?换句话说,有没有办法让脚本在同一日期和时间使所有 80 多个通行证过期?我是 Google 脚本的新手,所以我想知道我是否没有正确格式化我的列表或 URL 引用以便脚本识别多个文件,或者我可以修改脚本以识别数组links 而不是单个变量 url link.
在此先感谢您的帮助!
我希望您的 hand.Please 中有完整的 script,请在列表中列出 URL,并用逗号分隔。每个学生的密码是否不同?否则,您可能只是添加了文件夹的 URL 而根本不更改原始脚本。
但是,请尝试更改脚本的这些部分:
// Enter the full list of URLs(separated with comma) of the public Google Drive file or folder
var URL_LS = ["https://drive.google.com/open?id=0B_NmiOlCM-VTcFp6U1hydTM2MzVCY3AzMUpuTEtVWUhXRXNz", "https://drive.google.com/file/d/0B_NmiOlCM-VTNXFqOU1jTG5JdHJVQ3ZGUGNqZklJNWludllr/view?usp=sharing"] ;
var URL_LN = URL_LS.length;
// Enter the expiry date in YYYY-MM-DD HH:MM format
var EXPIRY_TIME = "2016-02-18 09:46";
再次,将 autoExpire()
替换如下:
function autoExpire() {
var id, asset, i, email, users;
try {
for (var j = 0; j < URL_LN; j++) {
var URL = URL_LS[j];
var id = URL.match(/[-\w]{25,}/g);
if (id) {
id = id[id.length-1];
asset = DriveApp.getFileById(id) ? DriveApp.getFileById(id) : DriveApp.getFolderById(id);
if (asset) {
asset.setSharing(DriveApp.Access.ANYONE, DriveApp.Permission.NONE);
asset.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.NONE);
users = asset.getEditors();
for (i in users) {
email = users[i].getEmail();
if (email !== "") {
asset.removeEditor(email);
}
}
users = asset.getViewers();
for (i in users) {
email = users[i].getEmail();
if (email !== "") {
asset.removeViewer(email);
}
}
}
}
}
} catch (e) {
Logger.log(e.toString());
}
}