I vecchi allegati/caricamenti danneggiati vengono visualizzati come
[{nome file}|attachment](/uploads/default/original/2X/6/{hash sha1 + estensione}) nel testo grezzo del post. Questo viene elaborato come href="/uploads/default/original/2X/6/{hash sha1 + estensione}", che interrompe gli allegati dei file, ma non le immagini.
Gli allegati funzionanti successivi appaiono come [{nome file}|attachment](upload://{sha1 in base62 + estensione}) e vengono elaborati come href="/uploads/short-url/{sha1 in base62 + estensione}.
Ho scritto un piccolo codice Ruby per scorrere tutti i post nel periodo problematico noto e sostituire tutti i vecchi URL di caricamento con la versione più recente. Ho utilizzato la funzione base62_sha1 del modello Upload per convertire l’hash sha1 nel nome file atteso che gli URL brevi di Discourse si aspettano.
Questo ha fatto funzionare gli allegati. Poi ho eseguito un altro rebake solo per confermare la correzione e sembra che funzioni ancora. Sembra che il problema risiedesse solo in Post.raw e non avesse nulla a che fare con Upload.