xandeadx.ru Блог музицирующего веб-девелопера

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

В восьмёрке по умолчанию после удаления сущности не удаляются файлы, залитые в поля типа 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
Похожие записи

Комментарии RSS

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

Да, всё верно

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании