Auto purge uploads from old deleted posts

Это отлично! Очень хорошее решение. :slight_smile:

Интересно, имеет ли смысл использовать ту же стратегию удаления ссылок на загрузку в формате Markdown в постах для обратного сценария, когда загрузка уничтожена, но посты, ссылающиеся на неё, остаются активными.

Если я уничтожаю загрузку, например:

Upload.find(123).destroy

И если загрузка 123 использовалась пользователями для:

  • пользовательского аватара профиля
  • фона профиля
  • фона карточки

Все ссылки удаляются, по-видимому, в:

before_destroy (удаление ссылок на загрузки фона/баннера карточки)

https://github.com/discourse/discourse/blob/6759ad71cac395697b2978eb34fcfbf1162d30d1/app/models/upload.rb#L53

after_destroy (удаление ссылок на загрузки аватара)

https://github.com/discourse/discourse/blob/6759ad71cac395697b2978eb34fcfbf1162d30d1/app/models/upload.rb#L60

Если бы идентификаторы постов, связанные с идентификатором загрузки, можно было использовать для постановки в очередь удаления ссылок на загрузку в формате Markdown при её уничтожении, это, возможно, предотвратило бы появление нерабочих ссылок на загрузки в не удалённых постах при ручном уничтожении загрузки.

В идеале следует сохранять разметку Markdown для всех идентификаторов загрузок, которые не были уничтожены, например, если один пост содержит две загрузки, но уничтожена только одна.

Например, при удалении загрузки, на которую ссылаются в нескольких постах (например, в постах с цитатами), через https://meta.discourse.org/t/legal-compliance-plugin/356331 или через CLI Rails.

1 лайк