После известного изменения
https://www.drupal.org/node/2891902
файлы вообще не удаляются.
Как теперь правильно удалять файлы которые не используются? D8. Нормально использовать для этого fancy_file_delete, есть у кого опыт?
Просто устраивает нынешнее поведение, переключаться на старый режим не нужно, но и файлопомойку не хочется
Комментарии
а как кстати отслеживать где используется сама медиа-сущность?
Получается, что если использовать медиа-сущность, например, изображение, в какой-то ноде.
Затем удалить эту ноду. Медиа-сущность останется, допустим она больше не нужна, как увидеть, что она (не) используется?
Неужели все руками в базе чистят?
В основном, не заморачиваются с файлопомойкой
Если поставить модуль file entity, он добавляет вьюху со всеми файлами, где указано, в скольких местах они используются. Достаточно добавить туда сортировку по этой цифре и прикрутить vbo.
а возможно ли прикрутить vbo к стандартному представлению admin/content/files ?
Конечно возможно, это же обычный вьюс. Я так делал.
Сейчас попробовал - не получилось.
После процесса пишет: Action processing results: Доступ запрещён (1).
В чём может быть проблема?
На самом деле причина была в этом:
https://www.drupal.org/project/drupal/issues/2949017
Есть большая вероятность, что вопрос будет решен в следующих версиях.
Списибо, всем что задумались над этой проблемой раньше чем я.
На сегодняшний день работает только dev версия модуля file entity. Желтая версия ошибки сыпет.
На странице модуля написано
This module has been renamed or deprecated by another module in Drupal 8. Please visit this issue for more information.
issue: https://www.drupal.org/project/contrib_tracker/issues/2574111
Что это значит? Можно без модуля? А как?
так есть же:
$config['file.settings']['make_unused_managed_files_temporary'] = TRUE;
Я поставил эту опцию. Но от того, что я поставил файлы не удаляются.
Использую модуль: https://www.drupal.org/project/file_delete. Как использовать смотрите тут: https://youtu.be/7bY6HFUFyfk
Также есть отдельный модуль для замены файлов, т.е. когда нужно сохранить путь к какому-либо файлу, но сам файл обновить: https://www.drupal.org/project/file_replace. Как использовать: https://youtu.be/GktU2hnGGQc
Чтобы добавить функционал модулей к системной таблице с файлами (/admin/content/files) нужно будет отредактировать этот системный вьюс и добавить туда две ссылки в нужные вам места (т.к. я установил два модуля - у меня это "Обновить файл" и "Удалить файл"). Обратите внимание, что модуль File delete требует версию php не менее 7.4.
После установки модуля Fancy File Delete возникают ошибки на сайте, которые не устраняются даже после удаления модуля. Поэтому я нашёл способ удалять неиспользуемые файлы непосредственно из базы данных без установки дополнительных модулей. Трудозатраты такого способа сравнимы установкой и использованием дополнительных модулей, но при этом сайт не загромождается дополнительными модулями и нет риска, что появятся ошибки. По этому поводу я написал небольшую статью. Ссылка на статью тут: «Удаление файлов в Drupal».
Удалять файлы напрямую из БД руками?
Solodukhin, так не принято.
Если б я знал почему может и отпустил бы какой- каламбур, что портчик Ржевский не смог запомнить... Сейчас просто надеюсь что вашими советами не будут пользоваться.
На счёт того, что «не принято» залезать в базы данных и править их вручную, могу вам скачать ещё, что например в России не принято здороваться через порог, а в Иране не принято женщинам ходить без хиджаба. Однако все эти суеверия и общепринятые традиции никак не способствуют развитию научно-технического прогресса. Приведите хотя бы один вразумительный аргумент – почему создатель сайтов не должен лезть в базы данных? Приведите в пример другой альтернативный способ удаления мусорной информации из баз данных, который лучше приложенного мною. Я наверняка уверен, что вы сами даже не пытались вникнуть в суть предложенного мною способа. Хотя кому я это пытаюсь доказать? Судя по вашему комментарию, вы из той категории людей которым гораздо проще обозвать человека глупцом, чем попытаться опровергнуть его точку зрения и предложить свою,
Solodukhin, я очень ценю альтернативные мнения в разработке. Даже сам являюсь автором альтернативных решений. Но есть методы, которые явно неправильные. Например использовать php фильтр, заливать html страницы в корень сайта, помещать ядро jquery в тему оформления, привить файлы контриб модулей не формируя патчей или кастомного кода. У меня нет знаний, чтобы объяснить почему.
Свою точку зрения я предложить не могу, потому как точка зрения уже есть и она не от меня.
Это модуль file_entity с помощью которого можно следить а присвоен ли файлу статус временного и поставить при надобности. За 3 года надобности ставить руками - не было.
Временные файлы должны удалятся после того как прописать
$config['file.settings']['make_unused_managed_files_temporary'] = TRUE;
Вроде еще что-то надо было, честно не помню.
Делал это в соей жизни всего раз, вот сейчас забрел на форум вспомнить что именно я делал.