[РЕШЕНО] С сервера не удаляются старые файлы, добавленные через тип поля "Файл"

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

Аватар пользователя Augustus Augustus 3 июля 2017 в 12:09

Заметил такую гадкую вещь - если в материале в прикреплённом поле типа "файл" удалить этот самый файл, то на сервере он остаётся и продолжает занимать место.
Файлы хранятся в хранилище Друпала "Приватные файлы", т.е. доступ к ним можно получить только с сайта. Настройки htaccess не менял.

Комментарии

Аватар пользователя Augustus Augustus 4 июля 2017 в 22:30

Предположение хорошее, но я этот вариант проверял - даже с одной опубликованной ревизией (моей) ноды они не удаляются с сервера, хотя в материале я их удалил.

Аватар пользователя Augustus Augustus 5 июля 2017 в 0:46

C cron проблем не замечал, по крайней мере письма отправляет мне и пользователям регулярно по распорядку.

Кстати, сейчас проверил - картинки тоже не удаляются (даже если удалить материал), а они у меня в общедоступном хранилище, в отличии от файлов.

Аватар пользователя Augustus Augustus 6 июля 2017 в 16:57

Очень полезный совет, что он есть что его нет. Базовая функция движка некорректно работает, а я админа буду нанимать.

Аватар пользователя Augustus Augustus 6 июля 2017 в 19:10

Проверил сайт у себя на денвере - та же беда, так что хостер отпал. Потом заметил, что если удалить файл не создавая ревизию в материале, где ни разу не создавались ревиизии, то он удаляется. Начал копать в сторону revisioning - оказалось, что это давно известная проблема на семёрке https://www.drupal.org/node/2285629 и 8ке https://www.drupal.org/node/1239558 У меня седьмой друпал и там написано, что до сих пор не исправлено. Такие дела.

Аватар пользователя Studio VIZA Studio VIZA 6 июля 2017 в 19:28

Augustus wrote:

Потом заметил, что если удалить файл не создавая ревизию в материале, где ни разу не создавались ревиизии, то он удаляется.

Грубо и навскидку, а если удалить ревизии с базы?

Аватар пользователя Augustus Augustus 6 июля 2017 в 19:30

Так дело не в этом, даже если их удалить (да даже если удалить весь материал), модуль revisioning не снимает (не умеет корректно) с файлов метку что они используются, поэтому друпал их не может удалить. Я так понял.

Аватар пользователя Augustus Augustus 6 июля 2017 в 19:34

Фишка моего наблюдения была в том, что до тех пор, пока не было обращения к модулю revisioning, всё нормально удалялось. Т.е. проблема именно в вышеуказанном модуле. Удаляй ревизии или нет - уже ничего не поможет.

Аватар пользователя Augustus Augustus 6 июля 2017 в 20:05

Спасибо за ссылку, попробовал (сделав бэкап), размер отдельных таблиц намного уменьшился (кстати как раз пресловутой file_usage), плохо что после окончания операции никаких отчётов модуль не показал, собственно вообще не понятно что он именно делал. Ну да ладно, лишь бы сбоев в работе сайта не было.

Касательно удаления файлов, я как раз разбираясь с моей проблемой наткнулся на такой модуль, Fancy File Delete. Но т.к. revisioning не отвязывает файл от материала, то в базе он считается нужным и от Fancy File Delete толку нет.

Аватар пользователя Studio VIZA Studio VIZA 6 июля 2017 в 20:22

Augustus wrote:

после окончания операции никаких отчётов модуль не показал

Там три кнопки, и после работы третьей (оптимизация таблиц), можно увидеть как похудела база, внизу, если было 2 гиг, становится 1.2 гиг и это не может не радовать ))

Аватар пользователя fairrandir fairrandir 6 июля 2017 в 21:49

Такс. Мимо крокодил. По идее - это разумное поведение для ревизий. Если ты хочешь откатить, или посмотреть, как оно было раньше - вполне логично, что и фалы ты захочешь увидеть. Поэтому в случае наличия у материала ревизий - это не баг, а фича.

Studio VIZA wrote:

Там три кнопки, и после работы третьей (оптимизация таблиц), можно увидеть как похудела база, внизу, если было 2 гиг, становится 1.2 гиг и это не может не радовать ))

Не так страшно смотреть, как уменьшается место на диске, как на то как оно медленно увеличивается.

Аватар пользователя Augustus Augustus 7 июля 2017 в 2:00

fairrandir, не раз и не два уже написал, речь о том, когда либо все архивные ревизии удалены, либо даже когда удалён материал полностью. Повнимательнее.