Периодически удаляйте все файлы определенного типа из корзины Google Drive.

Я получил некоторые файлы БД, автоматически скопированные на мой диск Google. Процедура резервного копирования добавляет новые файлы базы данных (.lxdb) в определенную папку и удаляет старые.

На Google Диске удаленные файлы попадают в корзину, быстро занимая ГБ дискового пространства.

Существуют сценарии GA для периодической очистки корзины, однако я просто хочу удалить этот определенный тип файлов, поскольку по соображениям безопасности имеет смысл хранить все остальные файлы в корзине.

function DeleteTrashedFiles(){
  Drive.Files.emptyTrash();
};

Тем не менее, каков современный способ запросить массив всех файлов.lxbd В TRASH, а затем удалить их? (лучше не перебирая все файлы GD)

1 ответ

У вас есть два варианта:

  1. Вместо того, чтобы переместить старый .lxbd файлы в корзину, просто удалите их немедленно. Из Apps Script, с включенным "Расширенным сервисом" Drive, это было бы Drive.Files.remove(file.id);
  2. Сделайте запрос со списком мусорных файлов для определенного типа файла, а затем вызовите 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, у вас будут дополнительные параметры, которые вам нужно включить, и дополнительные проверки, которые вы должны выполнить, если вам требуется безошибочная работа.

Другие вопросы по тегам