Я создал этот скрипт для удаления файлов, опубликованных более 3 часов назад. И даже если последний файл старше 3 часов, он не будет удален, поэтому папка никогда не будет пустой.
Я включил расширенный сервис Google под названием DRIVE API V2.
Я активировалтриггер для анализа папки каждые 5 минут, но часто файлы не удаляются, они остаются в папке. Скрипт работает иногда да, а иногда нет.
Я хотел бы знать, что не так или что мне нужно отредактировать, чтобы он работал идеально.
function getOldFileIDs() {
// Old date is 3 Hours
var oldDate = new Date().getTime() - 3600*1000*3;
var cutOffDate = new Date(oldDate).toISOString();
// Get folderID using the URL on google drive
var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
var files = folder.searchFiles('modifiedDate < "' + cutOffDate + '"');
var obj = [];
while (files.hasNext()) {
var file = files.next();
obj.push({id: file.getId(), date: file.getDateCreated()});
}
obj.sort(function(x, y) {return x.date < y.date ? 1 : -1});
obj.shift();
var fileIDs = obj.map(function(e) {return e.id});
return fileIDs;
};
function deleteFiles() {
var fileIDs = getOldFileIDs();
fileIDs.forEach(function(fileID) {
Drive.Files.remove(fileID);
});
};
Мне также нужна помощь, чтобы этот скрипт мог анализировать, есть ли внутри папки файлы с одинаковыми именами, если он существует, он удаляет лишние, так что всегда есть только один файл с каждым именем.
И новая деталь, появилась новая ошибка, которая до этого не произошла ... Сказав, что:
Ошибка вызова API для drive.files.delete с ошибкой Недостаточно прав для этого файла (строка 24)
Строка 24:
Drive.Files.remove(fileID);