Периодически удаляйте все файлы определенного типа из корзины Google Drive.
Я получил некоторые файлы БД, автоматически скопированные на мой диск Google. Процедура резервного копирования добавляет новые файлы базы данных (.lxdb) в определенную папку и удаляет старые.
На Google Диске удаленные файлы попадают в корзину, быстро занимая ГБ дискового пространства.
Существуют сценарии GA для периодической очистки корзины, однако я просто хочу удалить этот определенный тип файлов, поскольку по соображениям безопасности имеет смысл хранить все остальные файлы в корзине.
function DeleteTrashedFiles(){
Drive.Files.emptyTrash();
};
Тем не менее, каков современный способ запросить массив всех файлов.lxbd В TRASH, а затем удалить их? (лучше не перебирая все файлы GD)
1 ответ
У вас есть два варианта:
- Вместо того, чтобы переместить старый
.lxbd
файлы в корзину, просто удалите их немедленно. Из Apps Script, с включенным "Расширенным сервисом"Drive
, это было быDrive.Files.remove(file.id);
- Сделайте запрос со списком мусорных файлов для определенного типа файла, а затем вызовите
Drive.Files.remove
для каждого из них.
Пример варианта 2 для накопителя "Advanced Service" в скрипте Google Apps:
function deleteTrashedFiletype(someMimetype) {
var options = {
q: "trashed=true AND mimeType='" + someMimetype + "' AND '" + Session.getActiveUser().getEmail() + "' in owners",
pageToken: null
};
do {
var result = Drive.Files.list(options);
result.items.forEach(function (file) {
if(file.mimeType === someMimetype)
Drive.Files.remove(file.id);
else throw new Error("The query returned the wrong mimetype");
});
options.pageToken = result.nextPageToken;
} while(options.pageToken);
}
Если вы имеете дело с элементами Team Drive, у вас будут дополнительные параметры, которые вам нужно включить, и дополнительные проверки, которые вы должны выполнить, если вам требуется безошибочная работа.