Résumé du problème
Je rencontre une erreur 404 lors de l’accès à un téléchargement d’image via son URL sur le site Discourse en production (https://techenclave.com), bien que l’image soit présente sur le disque et servie correctement en interne. J’ai re-cuis le message, redémarré l’application et vérifié que le service interne fonctionne, mais il renvoie toujours une 404 en externe.
Ce qui fonctionne
1. Le téléchargement existe dans la base de données
En utilisant la console Rails, j’ai confirmé que le téléchargement existe avec toutes les métadonnées correctes :
Upload.find_by(sha1: 'a8fbe877e685e6a6994532c946c446b1279da7d2')
La sortie inclut :
url: "/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg"- Nom de fichier :
IMG202506252257011.jpg - ID :
170265 - Utilisé dans l’ID du message :
3125774
2. Le fichier existe sur le disque
J’ai vérifié que le fichier est présent à l’intérieur du conteneur :
ls -l /shared/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Le fichier existe avec le bon propriétaire et les bonnes permissions :
discourse:www-data, -rw-r--r--.
3. Le lien symbolique du dossier public fonctionne
Le lien symbolique public/uploads est intact :
ls -l /var/www/discourse/public/uploads
# => /shared/uploads
4. Discourse peut le servir en interne
Testé avec :
curl -I http://localhost:3000/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Résultat : HTTP/1.1 200 OK
5. Le message a été re-cuit
J’ai re-cuit le message avec :
Post.find(3125774).rebake!
6. L’application a été redémarrée
J’ai exécuté :
./launcher restart app
J’ai également tenté :
sudo ./launcher rebuild app
(Le démon Docker était temporairement indisponible mais a été corrigé par la suite.)
Ce qui ne fonctionne pas
Accès externe à l’image
L’accès à :
https://techenclave.com/uploads/default/original/3X/a/8/a8fbe877e685e6a6994532c946c446b1279da7d2.jpeg
Renvoie :
404 Not Found
Cela se produit sur tous les navigateurs et en mode incognito.
Ce dont j’ai besoin d’aide
Quelqu’un peut-il m’aider à identifier ce qui pourrait causer :
- Un téléchargement qui fonctionne et qui est servi via
localhost:3000, - mais qui renvoie une 404 en externe sur le domaine public ?
Que devrais-je vérifier d’autre ? Y a-t-il des configurations ou des journaux connexes à inspecter ?
Merci d’avance !
