Sur mon forum Discourse, les utilisateurs sont encouragés à utiliser des services externes d’hébergement d’images lorsque c’est possible. Le plus courant est Imgur, qui après un certain temps commence à limiter le débit du serveur Discourse avec une erreur 429. Bien que ce soit un problème insoluble avec Imgur, Discourse ne le gère pas non plus de manière optimale. Actuellement, lorsque Imgur renvoie une erreur 429, Discourse l’interprète comme un lien d’image invalide et affiche simplement l’URL de l’image avec des balises <a>. Mais rien n’empêche les utilisateurs individuels de visualiser ces images en ligne dans Discourse puisque leur navigateur et leur IP sont différents. Discourse devrait toujours générer du HTML valide pour afficher l’image. Par exemple :
https://i.imgur.com/eHltaVt.jpeg
Cette URL est limitée en débit sur mon serveur et Discourse génère simplement un lien :
<a>https://i.imgur.com/eHltaVt.jpeg</a>
Mais le HTML suivant fonctionne bien pour afficher l’image dans le navigateur de l’utilisateur final, à la fois dans l’aperçu du message et dans le message finalisé :
<img src="https://i.imgur.com/eHltaVt.jpeg">
C’est le HTML que Discourse devrait générer même s’il reçoit un 429 lorsque le serveur accède à l’URL, et il ne devrait laisser que l’URL brute s’il reçoit une erreur 404.