Les images ne se chargent pas après la fusion même si le fichier existe et que le modèle de téléchargement existe

J’ai utilisé Fusionner deux sites Discourse en un seul et cela a majoritairement fonctionné, mais les images du second site ne s’affichent pas.

Je peux faire quelque chose comme ceci :

p=Post.find_by(topic_id: 222435, post_number: 11)
short_url=p.raw.match(/(upload:\/\/.*?)\)/)[1]
up=Upload.sha1_from_short_url(short_url)

et up.url ressemble à /uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg et cd /shared; ls uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg trouve le fichier.

Mais https://host/uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg me renvoie une erreur 404 de nginx.

Il semblerait que si l’Upload existe et que le fichier existe, NGINX soit assez gentil pour me le laisser avoir. Qu’est-ce qui me manque ?

Pour certaines images, j’ai “résolu” ce problème en collant l’URL de l’image du site de test, ce qui génère l’image, qui est ensuite convertie en upload (le même upload que je trouve, à ce qu’il me semble) et ensuite, si je reconstruis le post, il aura l’image.

J’ai essayé de faire quelque chose comme

f=File.open('/shared/uploads/default/original/2X/9/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg')
upload = UploadCreator.new(f, 'upload.jpeg').create_for(-1)

pour faire la même chose que coller l’URL distante de l’image, mais cela ne fonctionne pas non plus.

Salut @RGJ . Auriez-vous une idée sur la façon d’obtenir ces images qui (semblent ?) exister dans la base de données et le système de fichiers pour qu’elles soient rendues lorsque je rebake ?

Je déteste déboguer ce genre d’erreurs.
La plupart du temps, j’exécute simplement le code manuellement dans le contrôleur dans une console Rails.

Cette fois, je suppose que le 404 pourrait provenir de la ligne 111

Que renvoie Discourse.store.list_missing_uploads(skip_optimized: true) ?

1 « J'aime »

C’est comme ça qu’on se ressemble. Mais je suis à peu près sûr que tu es meilleur que moi pour ça. Merci beaucoup pour tes indices.

C’est ce que j’essaie de faire.

Cela semble être une bonne supposition. Merci !

nil. skip_optimized: false – pareil.

J’ai réussi à corriger les téléchargements pour un message, mais apparemment je n’ai pas pris de bonnes notes. :person_shrugging: Mais j’ai fait un tas de choses pour y arriver ; j’ai surtout l’espoir que c’est possible, au moins.

1 « J'aime »