[英]How Can I Use A Google Script to Keep Revision History in Google Drive for Files Edited After A Certain Date?
我想创建一个Google脚本,该脚本将访问我的Google云端硬盘并访问在特定日期之后修改的所有文件(例如,过去30天中修改的所有文件),并将所有修订版本设置为永久保存。 本质上,这样做的目的是将修订历史记录永久保留在Google云端硬盘中,但是由于每次都对每个文件进行修订既多余又浪费资源,因此我计划每15或30天运行一次。
我在网上找不到类似的东西,所以我想最好问一下StackExchange社区。
也许您需要查看此文档以帮助您入门。
要列出文件的修订,您将需要Revisions:list方法。
这是一个示例 .js代码:
/**
* Retrieve a list of revisions.
*
* @param {String} fileId ID of the file to retrieve revisions for.
* @param {Function} callback Function to call when the request is complete.
*/
function retrieveRevisions(fileId, callback) {
var request = gapi.client.drive.revisions.list({
'fileId': fileId
});
request.execute(callback);
}
其他方法也可用:
只需使用此方法即可形成所需的功能。
下面的代码按照我的描述进行操作,但是(与所有Google脚本一样)只能运行6分钟(如果您当前使用的是EAP,则只能运行30分钟)。
function setRevisionPermanent() {
var rateLimit = 200;
var today = new Date();
var oneYear = new Date(today.getTime() - 365 * 24 * 60 * 60 * 1000);
var oneMonth = new Date(today.getTime() - 30 * 24 * 60 * 60 * 1000);
var startTime = oneMonth.toISOString();
var search = '(trashed = false) and (modifiedDate > "' + startTime + '")';
var files = DriveApp.searchFiles(search);
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
var fileId = file.getId();
try {
var revisions = Drive.Revisions.list(fileId).items;
for (var i = 0 ; i < revisions.length ; i ++) {
var rclone = revisions[i];
rclone.pinned = i < revisions.length - rateLimit ? false : true;
var request = Drive.Revisions.update(rclone, fileId, revisions[i].id);
}
} catch (e) {
Logger.log(e.message);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.