Файлы, прикрепленные к узлам, никогда не удаляются с сервера даже после их удаления из узла (и это редактирование сохраняется), Drupal 7

Я заметил что-то странное на моем сайте: после прикрепления файла к узлу (через обычное поле файла) этот файл никогда не удаляется с сервера . Я удаляю его из узла, сохраняю это изменение, но я вижу, что файл все еще находится на сервере.

Это очень затрудняет замену файлов, поскольку, когда пользователь пытается добавить замену, имя файла имеет «_0» или «_1», прикрепленное к нему (поскольку исходный файл все еще находится на сервере и который делает имя дубликат). Это означает, что нам нужно будет найти все ссылки на файл и отредактировать их, чтобы они соответствовали новому имени файла /url. Это полный беспорядок.

Я смотрю онлайн, и никто, кажется, не имеет этой проблемы - файлы должны быть удалены с сервера после их удаления с узла.

Любые идеи, почему это может произойти в моем случае? Я не уверен, с чего начать искать. Конечно, страница конфигурации «Файловая система» не имеет ничего такого, как опция, которая может быть проверена. И сами варианты полей, похоже, не имеют ничего такого, что я, возможно, случайно поставил. Любые другие идеи?

8 голосов | спросил Boriana Ditcheva 17 +04002012-10-17T21:33:53+04:00312012bEurope/MoscowWed, 17 Oct 2012 21:33:53 +0400 2012, 21:33:53

6 ответов


16

Я понял! Это пересмотр. Думаю, это имеет смысл. Если у вас есть ревизии включены для этого типа содержимого, он сохраняет all ваши старые файлы на сервере (связанные со старыми версиями), поэтому замена файла определенно сложнее. Если вы попытаетесь удалить его и добавить его снова в узел, имя /ссылка будет обновлена, как я уже упоминал в моем вопросе. Так как файл с этим именем хранится на сервере и дублируется имя, он добавляет суффиксы «_0», «_1» и т. Д. К будущим загруженным версиям имени этого файла.

Я понимаю, почему это происходит, поскольку вся точка пересмотра позволяет вернуться к любой предыдущей версии страницы.

Обход - это то, что вы действительно можете удалить старую ревизию со вкладки «Редакция» или «Умеренная» (при использовании Workbench Moderation), содержащей файл, который вы пытаетесь заменить. Затем загрузите его снова, и тогда имя должно совпадать без необходимости возвращаться и редактировать ссылки, указывающие на этот файл.

Надеюсь, что это имеет смысл и что это помогает кому-то еще!

ответил Boriana Ditcheva 18 +04002012-10-18T00:39:11+04:00312012bEurope/MoscowThu, 18 Oct 2012 00:39:11 +0400 2012, 00:39:11
4

У меня был один и тот же вариант использования (требуется заменить файлы при сохранении имени файла), и следующий код в настраиваемом модуле соответствовал этой цели. Этот код опирается на модуль Entity API , поэтому его следует добавить в зависимости от вашего файла .info. Обратная связь приветствуется.

Это позволяет сразу же удалить файлы после нажатия «Удалить», а затем сохранить узел. Предупреждение: это также означает, что когда вы удаляете файл и сохраняете узел, вы не можете вернуть этот файл, вернувшись к более ранней версии.

---- +: = 0 = + ----
ответил Cottser 7 PM00000070000000231 2013, 19:18:02
1

Я создал модуль, который удаляет потерянные файлы, как указано в этом потоке:

https://www.drupal.org/project/fancy_file_delete

Он также может принудительно удалять файлы вручную и не управляемые файлы.

ответил John O 31 J000000Friday15 2015, 22:42:00
0

Это может быть проблема с разрешениями на сервере. Попробуйте сделать то же самое при чистой установке - если вы столкнулись с одной и той же проблемой, тогда это зависит от сервера, а не от Drupal.

Есть ли что-нибудь в журналах?

ответил Aram Boyajyan 17 +04002012-10-17T21:38:33+04:00312012bEurope/MoscowWed, 17 Oct 2012 21:38:33 +0400 2012, 21:38:33
0

Мне не повезло с удалением старых версий или сохранением узлов без их прикрепленных файлов и возвращением. Это единственные вещи, которые всегда работают:

  1. Удаление узла
  2. Удаление файла путем редактирования узла и ручного удаления файла с сервера.

Я абсолютно ненавижу второй вариант, поэтому я здесь ищу другое решение.

(Я тоже могу выйти из пределов, так как у меня есть группа клиентов с D6.)

ответил Wray Bowling 10 PMpWed, 10 Apr 2013 23:28:52 +040028Wednesday 2013, 23:28:52
0

Я столкнулся с этой проблемой, а также с установкой workbench, а вставка поля файла фактически показывала старые версии загруженных файлов, когда файлы с тем же именем повторно загружаются в разные версии документа.

Чтобы все работало плавно, добавьте vid в качестве папки в путь загрузки файла. Обычно я делаю что-то вроде.

Путь к папке = assets /[node: nid] - [node: title] /[node: vid]

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

ответил Aidan Foster 3 MarpmMon, 03 Mar 2014 21:19:47 +04002014-03-03T21:19:47+04:0009 2014, 21:19:47

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132