Это справочное руководство описывает, как сиротские и удаленные загрузки автоматически удаляются с сайта Discourse. Данное руководство применимо как к самостоятельно размещенным, так и к размещенным на хостинге сайтам Discourse.
Требуемый уровень пользователя: Администратор
Задумывались ли вы когда-нибудь, что происходит с файлами и изображениями, которые были загружены на сайт Discourse, но больше не используются, или как удалить загрузки с сайта? Вы попали по адресу!
Возможно, вам потребуется удалить файлы и изображения, загруженные в Discourse, на которые больше нет ссылок. В пользовательском интерфейсе нет встроенного способа сделать это, однако в Discourse запланирована автоматическая задача Sidekiq под названием clean up uploads для удаления сиротских и удаленных загрузок.
Сиротские и удаленные загрузки
Сиротские загрузки — это файлы, которые были загружены на сайт Discourse, но больше не используются. Загрузка считается сиротской только если на неё нет ссылок:
- В последней версии сообщения
- В черновике
- В сообщении, ожидающем проверки
- В настройках сайта (например, логотип, значок сайта)
- В пользовательском эмодзи
- В теме
- В аватаре пользователя/фоне/изображении карточки
- В логотипе категории/фоновом изображении
- В изображении значка
- В изображении групповой эмблемы
Загрузки считаются «удаленными», когда удаляется тема/сообщение, в котором они содержатся.
Очистка загрузок
Чтобы полностью удалить загрузку из Discourse, вам необходимо сделать одно из следующего:
- Принудительно сделать загрузку сиротской, удалив любую ссылку на неё. Это можно сделать, удалив ссылку на загрузку из сообщения, в котором она находится, или из любых других мест, где на неё могут быть ссылки.
- Удалить все темы/сообщения, содержащие загрузку, из-за чего загрузка будет считаться «удаленной». Обратите внимание, что вам нужно удалить изображение из сообщения перед удалением самого сообщения, чтобы сделать его сиротским.
Все сиротские неуказанные загрузки и удаленные загрузки будут затем удалены из хранилища (после периода ожидания), как только будет выполнена задача clean up uploads.
Настройки сайта
Следующие настройки сайта доступны по адресу example.discourse.com/admin/site_settings/category/files для изменения того, как Discourse автоматически удаляет загрузки.
clean up uploads: по умолчанию trueclean orphan uploads grace period hours: по умолчанию 48purge deleted uploads grace period days: по умолчанию 30
Настройка clean up uploads может использоваться для включения или отключения автоматического удаления сиротских неуказанных загрузок. Настройка clean orphan uploads grace period hours определяет, как долго после обнаружения сиротской загрузки она будет удалена. Настройка purge deleted uploads grace period days определяет, как долго хранятся помеченные на удаление (удаленные) загрузки перед их постоянным удалением — это обрабатывается отдельной запланированной задачей purge deleted uploads.
Дополнительные сведения о задаче clean up uploads доступны в файле clean_up_uploads.rb на GitHub.
Удаление загрузок S3
Следующий раздел применим только к самостоятельно размещенным сайтам Discourse.
Если вы в настоящее время размещены на нашем Enterprise Plan, пожалуйста, свяжитесь с team@discourse.org, если у вас возникнут вопросы об удалении загрузок из вашего хранилища S3.
Очистка сиротских и удаленных загрузок работает аналогично как для локального, так и для хранилища S3. Единственное различие между локальным хранилищем и хранилищем S3 заключается в том, что очистка загрузок S3 автоматически обрабатывается S3 с помощью политики tombstone. Дополнительные сведения о том, как это обрабатывается в S3, см. в разделе Управление жизненным циклом хранилища.
По умолчанию задача clean up uploads включает загрузки S3. Однако, если вы хотите отключить эту функцию, вы можете снять флажок настройки сайта s3 configure tombstone policy.

