Cloudflare R2: Configurazione e gestione degli errori di impostazione

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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  1. 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!

6 Mi Piace