Drupal → Автоматическое удаление файлов после удаления сущности

05.12.2018

В восьмёрке по умолчанию после удаления сущности не удаляются файлы, залитые в поля типа File. Они не удаляются ни сразу, ни по крону, так как статус файла в таблице file_managed остаётся 1. В версии 8.4 появилась опция make_unused_managed_files_temporary, при включении которой файлы помечаются как временные и удаляются по прошествии 6 часов, однако отредактировать эту опцию из админки нельзя. Включить можно либо с помощью drush:

vendor/bin/drush config-set file.settings make_unused_managed_files_temporary 1 -y

либо выполнить код в Devel:

\Drupal::configFactory()
  ->getEditable('file.settings')
  ->set('make_unused_managed_files_temporary', TRUE)
  ->save();

либо добавить в settings.php:

$config['file.settings']['make_unused_managed_files_temporary'] = TRUE;
Написанное актуально для
Drupal 8+
Похожие записи

Комментарии

Евгений
05.12.2018, 19:47

Спасибо за решение.
Правильно я понимаю, что для старых не удаленных файлов это проблемы не решит, и их вручную как-то удалять нужно? Например, по костыльному изменив статус в базе на 0.

жан-клод
04.02.2019, 18:20

сам офигел от такого
в общем поставил вбо, с его помощью можно удалять файлы как контент, галочками.

жан-клод
04.02.2019, 18:23

ксандрекс, какой там самый популярный сейчас файл-менеджер для ckeditor?
imce при включенной аггрегации js-скриптов не пашет))
можно конечно поставить advagg, но пипец он весит 300к и генерит в исходном коде страницы сотню js/css.
elfinder чтоли придется юзать.

не в курсе, не пользуюсь файлменеджерами

Гость
23.02.2019, 14:36

А почему разработчики не сделали удаление по умолчанию?

Гость
03.09.2020, 19:23

У кого-нибудь работает метод добавления в settings.php? У меня нет, хоть и вставил строчку вот этого кода: $config['file.settings']['make_unused_managed_files_temporary'] = TRUE;

Добавить комментарий