Есть ли способ перечислить все неиспользуемые файлы, которые находятся в общедоступной файловой системе и в каталоге темы, и перечислить их, или, возможно, даже есть возможность удалить их автоматически?
Я имею в виду файлы, которые в настоящее время не связаны ни с одной таблицей стилей CSS, ни с какого-либо узла.
Ответы:
Вы можете найти потерянные файлы, выполнив следующий запрос MySQL:
Это возвращает все файлы, которые не имеют связанного узла. Я не уверен, безопасно ли удалять возвращенные строки и файлы, возможно, это также зависит от настроек вашего модуля. Используйте только на свой страх и риск!
Источник: http://drupal.org/node/733258#comment-5582764
источник
Для тех, кто придет на этот пост три года спустя, есть небольшой модуль, который вы можете использовать для этого, который называется Fancy File Delete .
На момент написания этой статьи он был в бета-версии, поэтому используйте его на свой страх и риск. Как всегда, очистка потерянных объектов с помощью запросов к БД может быть отрывочной, и ее успех сильно зависит от настроек вашего конкретного модуля.
источник
Что-то, что может помочь идентифицировать « файлы, которые больше не прикреплены к узлам или файлам и каталогам, которых нет в таблице управления файлами » (как в дублирующем вопросе « Как удалить неиспользуемые файлы? »), Это использовать Модуль проверки файлов . Некоторые подробности об этом на странице проекта:
Так что вы могли бы сделать так:
Примечание : несмотря на то, что этот вопрос касается D7, это (альфа-версия) его также для D8.
источник
есть один модуль , который удаляет ненужные файлы фантазия удаления файлов .
источник
Вы можете удалить неиспользуемый файл
Удалить вручную из таблицы file_managed по какому-либо запросу, например
$this->database ->delete('file_managed') ->condition('fid', $fid, '=') ->execute();
Установка статуса файла 0 , чтобы пометить его как временный файл, поэтому cron удалит его через определенное время.
$file = File::load ($fid); $file->setTemporary();
источник
Удаления фантазии файл модуль не работает вообще для меня. Вот более ручная альтернатива.
Чтобы удалить файлы из папки, которой нет в таблице управляемых файлов, вы можете:
1) Создайте список всех управляемых файлов:
2) Удалите все файлы из каталога, которых нет в этом списке. Для этого я использовал небольшой скрипт bash:
Просто измените
IMG_FOLDER
переменную на путь к любой папке, из которой вы хотите удалить файлы (и обновите путь до вашего файла исключений)источник