Vérifié : Images lost when migrating to self-hosting, posts:rebake n’a aucun effet bénéfique.
Problème
Nous avons suivi les instructions officielles et créé une instance Lightsail, à partir de laquelle nous avons téléchargé une base de données depuis l’interface utilisateur de Discourse et l’avons appliquée pour obtenir 80% du chemin. L’idée était de passer à l’instance auto-hébergée tout en maintenant la variante précédente en ligne.
Une fois que nous avons une copie en direct de l’ancien forum. Nous commençons à migrer les images. Pour ce faire, nous annulons d’abord notre abonnement pour obtenir et migrer nos images.
Comme de nouvelles images seraient téléchargées sur l’instance auto-hébergée, nous n’aurions qu’à télécharger depuis l’instance hébergée avant la date de transition. Cela signifie que nous n’avons jamais utilisé la sauvegarde de la base de données fournie avec nos images et notre annulation ; comme nous avions déjà effectué la migration, elle était maintenant expirée.
J’observe trois comportements liés à ce point dans le temps.
- Les ressources référencées dans la sauvegarde (dump SQL, spécifiquement) pointent vers l’infrastructure Discourse
- Les ressources référencées* depuis la création sur la sauvegarde, par exemple les images des nouveaux messages, sont correctement référencées et trouvées sur notre infrastructure
Par conséquent, si je re-télécharge une ressource qui correspond au même hachage, elle pointera vers l’infrastructure Discourse. Par exemple : essayer de corriger le favicon en téléchargeant le même ne fonctionne pas. Je peux cependant télécharger n’importe quelle autre image aléatoire, et cela fonctionnera.
État actuel
D’après ce que je comprends, upload://<X> passe par un décodage b62 (et sha1 ?) pour le mapper au dossier public/uploads. Nous avons chacune de ces images :
Le dump que nous a fourni l’équipe Discourse contient un zip avec
default/original/1Xet il est actuellement visible dans/var/www/discourse/public/uploads/default/original/1X. Ce dernier dossier contient maintenant 329 éléments, le dump fourni en contenait 249 — cela me semble bon.
Cela signifie que les données devraient être découvrables, même si je ne trouve pas directement le téléchargement dans le dossier. Je cherche à comprendre cette relation, afin de pouvoir corriger le mappage d’une manière ou d’une autre. Initialement, cela ne semblait être qu’une simple substitution de chaîne, et cela a fonctionné pour certaines images. Certaines sont maintenant remplacées par un transparent.png, alors qu’auparavant, il s’agissait simplement d’une image inaccessible.

