Как правильно удалять неиспользуемые файлы в Drupal 8

Главные вкладки

Аватар пользователя vlucas vlucas 25 сентября 2018 в 19:17

После известного изменения
https://www.drupal.org/node/2891902
файлы вообще не удаляются.

Как теперь правильно удалять файлы которые не используются? D8. Нормально использовать для этого fancy_file_delete, есть у кого опыт?

Просто устраивает нынешнее поведение, переключаться на старый режим не нужно, но и файлопомойку не хочется

Комментарии

Аватар пользователя vlucas vlucas 25 сентября 2018 в 20:16

а как кстати отслеживать где используется сама медиа-сущность?
Получается, что если использовать медиа-сущность, например, изображение, в какой-то ноде.
Затем удалить эту ноду. Медиа-сущность останется, допустим она больше не нужна, как увидеть, что она (не) используется?

Аватар пользователя gun_dose gun_dose 26 сентября 2018 в 6:45

Если поставить модуль file entity, он добавляет вьюху со всеми файлами, где указано, в скольких местах они используются. Достаточно добавить туда сортировку по этой цифре и прикрутить vbo.

Аватар пользователя vlucas vlucas 13 марта 2019 в 14:27

Сейчас попробовал - не получилось.
После процесса пишет: Action processing results: Доступ запрещён (1).
В чём может быть проблема?

Аватар пользователя VasyOK VasyOK 20 февраля 2020 в 20:55

Списибо, всем что задумались над этой проблемой раньше чем я.
На сегодняшний день работает только 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

Что это значит? Можно без модуля? А как?

Аватар пользователя chelwolf chelwolf 29 ноября 2022 в 16:15

Использую модуль: 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.

Аватар пользователя Solodukhin Solodukhin 28 февраля 2023 в 14:07

После установки модуля Fancy File Delete возникают ошибки на сайте, которые не устраняются даже после удаления модуля. Поэтому я нашёл способ удалять неиспользуемые файлы непосредственно из базы данных без установки дополнительных модулей. Трудозатраты такого способа сравнимы установкой и использованием дополнительных модулей, но при этом сайт не загромождается дополнительными модулями и нет риска, что появятся ошибки. По этому поводу я написал небольшую статью. Ссылка на статью тут: «Удаление файлов в Drupal».

Аватар пользователя VasyOK VasyOK 24 ноября 2023 в 19:51

Удалять файлы напрямую из БД руками?
Solodukhin, так не принято.
Если б я знал почему может и отпустил бы какой- каламбур, что портчик Ржевский не смог запомнить... Сейчас просто надеюсь что вашими советами не будут пользоваться.

Аватар пользователя Solodukhin Solodukhin 26 ноября 2023 в 11:45

На счёт того, что «не принято» залезать в базы данных и править их вручную, могу вам скачать ещё, что например в России не принято здороваться через порог, а в Иране не принято женщинам ходить без хиджаба. Однако все эти суеверия и общепринятые традиции никак не способствуют развитию научно-технического прогресса. Приведите хотя бы один вразумительный аргумент – почему создатель сайтов не должен лезть в базы данных? Приведите в пример другой альтернативный способ удаления мусорной информации из баз данных, который лучше приложенного мною. Я наверняка уверен, что вы сами даже не пытались вникнуть в суть предложенного мною способа. Хотя кому я это пытаюсь доказать? Судя по вашему комментарию, вы из той категории людей которым гораздо проще обозвать человека глупцом, чем попытаться опровергнуть его точку зрения и предложить свою,

Аватар пользователя VasyOK VasyOK 26 ноября 2023 в 12:49

Solodukhin, я очень ценю альтернативные мнения в разработке. Даже сам являюсь автором альтернативных решений. Но есть методы, которые явно неправильные. Например использовать php фильтр, заливать html страницы в корень сайта, помещать ядро jquery в тему оформления, привить файлы контриб модулей не формируя патчей или кастомного кода. У меня нет знаний, чтобы объяснить почему.

Свою точку зрения я предложить не могу, потому как точка зрения уже есть и она не от меня.
Это модуль file_entity с помощью которого можно следить а присвоен ли файлу статус временного и поставить при надобности. За 3 года надобности ставить руками - не было.
Временные файлы должны удалятся после того как прописать
$config['file.settings']['make_unused_managed_files_temporary'] = TRUE;
Вроде еще что-то надо было, честно не помню.
Делал это в соей жизни всего раз, вот сейчас забрел на форум вспомнить что именно я делал.