Пройдусь по похожим темам, чтобы найти возможные нерешённые случаи. Вот хороший пример того, как такие ситуации могут даже привести к юридическим проблемам из-за того, что загруженные пользователями файлы не становятся «сиротами» и не удаляются навсегда, как должно быть:
Ещё одна похожая ситуация, датируемая 2016 годом:
Подобные условия создают огромную лазейку для злоупотреблений и даже целенаправленных атак с загрузкой незаконного контента, который может не быть окончательно удалён с сервера, даже когда администраторы полагают, что это произошло. Конечно, вручную удалить отдельные файлы напрямую из файловой системы возможно, но я не считаю, что людей должны вынуждать идти таким путём для решения такой базовой задачи, особенно когда в графическом интерфейсе есть настройка, указывающая на автоматический процесс очистки, а модераторы часто вообще не имеют прямого доступа к серверу. Кроме того, ручное удаление непрактично при большом количестве файлов, разбросанных по разным удалённым темам.
Достаточно ли здесь оснований для настоящего отчёта об ошибке? Я всё ещё не исключаю возможной неправильной конфигурации с нашей стороны, но меня озадачивает отсутствие сообщений об ошибках, и всё остальное работает как часы. Я потратил всё больше дней на устранение неполадок и тестирование, в процессе получив больше знаний о Discourse и его компонентах, поэтому считаю, что при некотором руководстве смогу помочь выяснить, есть ли какая-то деталь в особом случае, вызывающая это странное поведение. Надеюсь, нормально обратиться к @zogstrip на этом этапе?
Для временного решения возможно ли вручную переместить все загрузки в директорию «тумбы» (tombstone) и использовать методы восстановления загрузок, чтобы вернуть обратно в правильные директории только те файлы, которые не являются сиротами? Я сегодня пытался сделать это, но команда rake uploads:recover_from_tombstone не восстановила ни одного файла. Не указывает ли это на более серьёзную проблему с записями загрузок в базе данных?