Salut tout le monde,
Je voulais partager mon expérience et les étapes sur la façon dont j’ai configuré avec succès Cloudflare R2 pour les téléchargements et les sauvegardes sur mon forum Discourse. J’espère que cela aidera ceux qui cherchent à utiliser Cloudflare R2 avec Discourse.
Aperçu de la configuration :
- Plateforme : Discourse (installation Bitnami)
- Bucket : Cloudflare R2
- Domaine personnalisé : Configuré pour servir les fichiers publiquement
- Configuration : Entièrement réalisée via les paramètres du site Discourse (aucune variable d’environnement n’a été modifiée)
Guide étape par étape :
- Créer un bucket Cloudflare R2 :
- Connectez-vous à votre compte Cloudflare et accédez au stockage R2.
- Créez un nouveau bucket pour vos téléchargements Discourse (par exemple,
forum-uploads). - Notez l’URL de l’API S3 du bucket, l’ID de clé d’accès et la Clé d’accès secrète.
- Configurer un domaine personnalisé pour le CDN :
- Pour servir le contenu de votre bucket R2 publiquement, créez un domaine personnalisé dans Cloudflare.
- Par exemple, j’ai utilisé
forumfiles.example.in. - Assurez-vous de configurer les paramètres DNS pour qu’ils pointent vers le CNAME fourni par Cloudflare. Comme j’ai un domaine sur Cloudflare, cela a été fait automatiquement pour moi.
- Configurer les paramètres du site Discourse :
- s3_bucket : Le nom de votre bucket R2 (par exemple,
forum-uploads). - s3_region : Défini sur US East (N. Virginia). Il n’y avait pas d’option automatique.
- s3_endpoint : Utilisez l’URL de l’API S3 de votre bucket fournie par Cloudflare (par exemple,
https://\u003cyour-bucket-unique-id\u003e.r2.cloudflarestorage.com). - s3_access_key_id : Votre ID de clé d’accès R2.
- s3_secret_access_key : Votre Clé d’accès secrète R2.
- s3_cdn_url : Votre domaine personnalisé pour le CDN (par exemple,
https://forumfiles.example.in). - Assurez-vous que enable s3 backups et enable s3 uploads sont cochés.
- s3_bucket : Le nom de votre bucket R2 (par exemple,
- Ajuster les autorisations et CORS :
- Définissez votre bucket R2 sur privé et configurez une politique CORS :
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
- Cela garantit que les téléchargements fonctionnent correctement sans problèmes CORS.
- Tester la configuration :
- Téléchargez un fichier ou une image de test via votre forum Discourse pour vérifier que les téléchargements fonctionnent correctement.
- Vérifiez si les fichiers sont accessibles via votre domaine personnalisé (par exemple,
https://forumfiles.example.in/original/1X/...). - Vérifiez les sauvegardes, j’ai pu exécuter des sauvegardes avec succès. J’ai vérifié dans le bucket R2 et elles sont également listées dans les paramètres du site.
Conclusion :
En suivant ces étapes, j’ai pu intégrer Cloudflare R2 avec Discourse de manière transparente, en gérant efficacement les téléchargements et les sauvegardes. Si vous avez des questions ou rencontrez des problèmes, n’hésitez pas à demander !