Persistance des images incohérente dans les révisions d’articles : pourquoi certaines images supprimées sont-elles cassées tandis que d’autres persistent indéfiniment ?

Bonjour l’équipe Discourse et la communauté,

J’ai remarqué un comportement intéressant concernant la gestion des images dans les révisions de messages sur mon instance Discourse auto-hébergée, et j’aimerais comprendre le mécanisme sous-jacent.

Contexte :

  • Les téléchargements d’images de mon site sont dirigés vers Cloudflare R2 (stockage compatible S3).

  • Au cours des derniers mois, j’ai effectué plusieurs modifications sur des messages impliquant le remplacement ou la suppression d’anciennes images par de nouvelles.

  • Tous les téléchargements d’images originaux résident dans R2.

L’Observation : Lorsque je consulte l’historique des Révisions de messages pour ces anciens messages :

  1. Pour la plupart des révisions où une image a été remplacée ou supprimée il y a plusieurs mois, le lien de l’image dans la révision reste entièrement accessible et se charge correctement.

  2. Pour certaines révisions spécifiques, l’image est complètement cassée ou son fichier physique sous-jacent est manquant, ne laissant qu’un espace réservé.

Ma Question :

  • Comment la tâche en arrière-plan CleanUpUploads de Discourse et la suppression des téléchargements orphelins font-elles la distinction entre ces révisions ?

  • Pourquoi certaines images historiques des révisions persistent-elles indéfiniment dans R2 (ou le cache) même après avoir été retirées du corps du message le plus récent, tandis que d’autres sont entièrement purgées ou perdent leurs variantes optimisées ?

Toute information sur le code source ou la logique de base de données (upload_references / OptimizedImage) concernant les révisions serait grandement appréciée !

Leo