Cela m’a pris une éternité pour comprendre comment faire tout cela, alors j’ai voulu créer ce guide pour faciliter la tâche aux autres. Servir vos images de cette manière est censé accélérer le chargement de votre site. Ma configuration Discourse combine un droplet DigitalOcean, BackBlaze B2 S3, BunnyCDN et la version gratuite de Cloudflare.
J’ai choisi ces services après avoir fait quelques recherches sur la fiabilité, les tarifs et les performances. Ils semblaient être les meilleures options pour moi. Cloudflare aide à la sécurité, mais, d’après ce que je comprends, il ralentit légèrement le site, donc vous devriez vous renseigner là-dessus. Backblaze a des partenariats avec Cloudflare et Bunny qui permettent des transferts de données gratuits.
Bien que Cloudflare soit appelé un CDN, il ne fonctionne pas comme les CDN classiques et il ne fonctionnera probablement pas seul pour configurer S3 avec Discourse. Vous aurez peut-être besoin d’un autre fournisseur de CDN ; BunnyCDN fonctionne bien pour moi. Si quelqu’un a réussi à le faire uniquement avec Cloudflare, faites-le-moi savoir ![]()
Comment configurer les téléchargements vers S3 :
Tout d’abord, inscrivez-vous chez Backblaze, créez des buckets, puis insérez les détails dans les paramètres de Discourse :
Ensuite, inscrivez-vous chez BunnyCDN et suivez ce guide :
bunny.net - The Global Edge Platform that truly Hops (lien de parrainage, je reçois un crédit de 20 $ sur ma facture)
Une fois votre zone de pull BunnyCDN créée, vous devez obtenir l’URL correcte à insérer dans le paramètre « s3 cdn url » du backend d’administration de Discourse. Accédez à votre tableau de bord BunnyCDN > zones de pull > gérer les zones de pull > cliquez sur votre zone > copiez l’URL à côté de « host name ».
L’URL devrait ressembler à quelque chose comme : example.b-cdn.net, mais vous devrez vous assurer d’ajouter https:// devant, comme ceci : https://example.b-cdn.net
Enregistrez les modifications dans la section des paramètres d’administration de Discourse.
Appuyez deux fois sur Ctrl+F5 dans votre navigateur sur votre site Discourse.
Faites un test en téléchargeant une image dans le compositeur de texte de Discourse. Inspectez l’élément de l’image de test ou affichez la source de l’image pour vérifier que cela a fonctionné. L’URL devrait être différente de votre domaine habituel ; elle devrait ressembler à example.b-cdn.net / nom_du_fichier.
Désormais, chaque fois qu’une personne télécharge une image, elle sera stockée dans votre bucket Backblaze et ne prendra pas de place sur votre droplet DigitalOcean ![]()
Sauvegarde des téléchargements vers S3
Si vous souhaitez configurer vos sauvegardes Discourse pour qu’elles soient envoyées vers votre bucket Backblaze, voici comment procéder :
Dans le guide que j’ai publié plus haut dans ce fil, faites attention à la façon dont il explique qu’il faut deux buckets séparés. Un bucket est public ; c’est votre bucket de téléchargements pour que les utilisateurs puissent télécharger des images sur votre forum. L’autre bucket est privé ; c’est votre bucket de sauvegardes. Il est important de créer des sauvegardes automatisées de Discourse au cas où quelque chose se briserait, afin que vous puissiez charger votre sauvegarde et réparer le problème.
Sur votre tableau de bord BunnyCDN, vous devez créer une deuxième zone de pull. Votre première zone de pull était destinée aux téléchargements ; cette nouvelle zone de pull sera destinée aux sauvegardes.
tableau de bord bunnycdn > zones de pull > ajouter une zone de pull
Suivez le même guide que j’ai lié précédemment, « Comment accélérer la livraison de vos fichiers Backblaze B2 avec BunnyCDN » de BunnyCDN, mais cette fois, liez la nouvelle zone de pull à votre bucket de sauvegarde au lieu de votre bucket de téléchargements.
Je recommande d’utiliser le « niveau à fort volume 5 /To » sur la page de création de zone de pull de BunnyCDN. Je pense que les sauvegardes n'ont pas besoin du niveau plus cher et plus rapide « niveau standard 10 /To » que j’ai utilisé pour mon bucket de téléchargements.
Configurez vos paramètres de sauvegarde dans la section des paramètres d’administration de Discourse. « backup location » doit être défini sur S3 et « s3 endpoint » doit pointer vers ce que vous avez chez Backblaze, quelque chose comme ceci :
s3.us-west-002.backblazeb2.com
Appuyez deux fois sur Ctrl+F5 sur votre site pour vider le cache.
Démarrez une sauvegarde et laissez-la se terminer. Attendez ensuite 5 minutes et vérifiez votre dossier de sauvegardes Backblaze ; vous devriez voir la nouvelle sauvegarde apparaître.
Migration des images plus anciennes :
Cette étape est optionnelle mais recommandée, surtout si vous manquez d’espace de stockage sur votre serveur. Vous avez donc tout configuré pour les nouveaux téléchargements d’images, mais les images plus anciennes peuvent également être transférées vers vos buckets. Pour que ce processus fonctionne, suivez ces étapes :
Configuration du CDN Cloudflare
Cette étape est optionnelle puisque Backblaze a obtenu un partenariat qui rend le transfert de données vers Bunny gratuit également, mais pour une sécurité supplémentaire et d’autres fonctionnalités, vous pouvez faire passer les données d’abord par Cloudflare, puis faire en sorte que Bunny récupère les données à l’endroit où Cloudflare les dépose.
https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN


