Ciao a tutti,
Volevo condividere la mia esperienza e i passaggi su come ho configurato con successo Cloudflare R2 sia per i caricamenti che per i backup nel mio forum Discourse. Spero che questo aiuti altri che cercano di utilizzare Cloudflare R2 con Discourse.
Panoramica della configurazione:
- Piattaforma: Discourse (installazione Bitnami)
- Bucket: Cloudflare R2
- Dominio personalizzato: Configurato per servire file pubblicamente
- Configurazione: Eseguita interamente tramite le impostazioni del sito di Discourse (nessuna variabile d’ambiente è stata modificata)
Guida passo passo:
- Crea un bucket Cloudflare R2:
- Accedi al tuo account Cloudflare e vai allo storage R2.
- Crea un nuovo bucket per i caricamenti del tuo forum (ad esempio,
forum-uploads). - Annota l’URL API S3 del bucket, l’Access Key ID e la Secret Access Key.
- Configura il dominio personalizzato per CDN:
- Per servire pubblicamente il contenuto del tuo bucket R2, crea un dominio personalizzato in Cloudflare.
- Ad esempio, ho usato
forumfiles.example.in. - Assicurati di configurare le impostazioni DNS per puntare al CNAME fornito da Cloudflare. Poiché ho un dominio su Cloudflare, l’ha fatto per me.
- Configura le impostazioni del sito di Discourse:
- s3_bucket: Il nome del tuo bucket R2 (ad esempio,
forum-uploads). - s3_region: Imposta su US East (N. Virginia). Non c’era l’opzione di automatico.
- s3_endpoint: Usa l’URL API S3 del bucket fornito da Cloudflare (ad esempio,
https://<il-tuo-id-univoco-del-bucket>.r2.cloudflarestorage.com). - s3_access_key_id: Il tuo Access Key ID R2.
- s3_secret_access_key: La tua Secret Access Key R2.
- s3_cdn_url: Il tuo dominio personalizzato per la CDN (ad esempio,
https://forumfiles.example.in). - Assicurati che enable s3 backups e enable s3 uploads siano selezionati.
- s3_bucket: Il nome del tuo bucket R2 (ad esempio,
- Regola permessi e CORS:
- Imposta il tuo bucket R2 su privato e configura una policy CORS:
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3000
}
]
- Ciò garantisce che i caricamenti funzionino correttamente senza problemi CORS.
- Test della configurazione:
- Carica un file o un’immagine di prova tramite il tuo forum Discourse per verificare che i caricamenti funzionino correttamente.
- Verifica se i file sono accessibili tramite il tuo dominio personalizzato (ad esempio,
https://forumfiles.example.in/original/1X/...). - Controlla i backup, sono riuscito a eseguire correttamente i backup. Ricontrollato nel bucket R2 e sono elencati anche nelle impostazioni del sito.
Conclusione:
Seguendo questi passaggi, sono stato in grado di integrare Cloudflare R2 con Discourse senza problemi, gestendo sia i caricamenti che i backup in modo efficiente. Se hai domande o incontri problemi, non esitare a chiedere!