Persistenza delle immagini incoerente nelle revisioni dei post: perché alcune immagini cancellate si rompono mentre altre persistono a tempo indeterminato?

Ciao team di Discourse e community,

Ho notato un comportamento interessante riguardo alla gestione delle immagini nelle Revisioni dei post sulla mia istanza di Discourse self-hosted e vorrei capire il meccanismo sottostante.

Contesto:

  • Le caricamenti di immagini sul mio sito sono indirizzati a Cloudflare R2 (storage compatibile con S3).

  • Negli ultimi mesi ho apportato diverse modifiche a post che coinvolgevano la sostituzione o la rimozione di vecchie immagini con nuove.

  • Tutti i caricamenti originali delle immagini risiedono su R2.

L’Osservazione: Quando controllo la cronologia delle Revisioni dei post per questi post più vecchi:

  1. Per la maggior parte delle revisioni in cui un’immagine è stata sostituita o eliminata mesi fa, il link all’immagine nella revisione rimane completamente accessibile e viene caricato correttamente.

  2. Per alcune revisioni specifiche, l’immagine è completamente rotta o priva del file fisico sottostante, lasciando solo un segnaposto.

La mia domanda:

  • Come differenziano tra queste revisioni i job in background di CleanUpUploads e di rimozione degli upload orfani di Discourse?

  • Perché alcune immagini delle revisioni storiche persistono indefinitamente su R2 (o nella cache) anche dopo essere state rimosse dal corpo dell’ultimo post, mentre altre vengono completamente eliminate o perdono le loro varianti ottimizzate?

Qualsiasi chiarimento sul codebase o sulla logica del database (upload_references / OptimizedImage) relativo alle revisioni sarebbe molto apprezzato!

Leo