Auto purge uploads from old deleted posts

¡Eso es genial! Muy buena solución. :slight_smile:

Me pregunto si usar la misma estrategia de eliminar las referencias de carga de markdown en las publicaciones tendría sentido para el escenario inverso, cuando se destruye una carga pero las publicaciones que hacen referencia a ella permanecen activas.

Si destruyo una carga como:

Upload.find(123).destroy

Si la carga 123 fue utilizada por algún usuario para:

  • avatar personalizado del perfil
  • fondo del perfil
  • fondo de la tarjeta

Todas las referencias se eliminan, aparentemente de:

before_destroy (eliminar referencias de carga de fondo/banner de tarjeta)

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

after_destroy (eliminar referencias de carga de avatar)

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

Si los IDs de las publicaciones asociadas con un ID de carga pudieran usarse para poner en cola la eliminación del markdown de la carga cuando se destruye, creo que eso podría evitar referencias de carga muertas en publicaciones no eliminadas cuando una carga se destruye manualmente.

Idealmente, preservando el markdown de la carga para cualquier ID de carga que no fue destruida, si, por ejemplo, una publicación tiene dos cargas pero solo una fue destruida.

Por ejemplo, si se elimina una carga a la que se hace referencia en más de una publicación (como las publicaciones citadas) a través de https://meta.discourse.org/t/legal-compliance-plugin/356331 o la CLI de Rails.

1 me gusta