Cloudflare R2: Navegando por la configuración y gestionando errores de configuración

Hola a todos,

Quería compartir mi experiencia y los pasos sobre cómo configuré con éxito Cloudflare R2 tanto para cargas como para copias de seguridad en mi foro de Discourse. Espero que esto ayude a otros que buscan usar Cloudflare R2 con Discourse.

Resumen de la configuración:

  • Plataforma: Discourse (instalación de Bitnami)
  • Bucket: Cloudflare R2
  • Dominio personalizado: Configurado para servir archivos públicamente
  • Configuración: Realizada completamente a través de la configuración del sitio de Discourse (no se tocaron variables de entorno)

Guía paso a paso:

  1. Crear un bucket de Cloudflare R2:
    • Inicia sesión en tu cuenta de Cloudflare y navega a Almacenamiento R2.
    • Crea un nuevo bucket para las cargas de tu Discourse (por ejemplo, forum-uploads).
    • Anota la URL de la API S3 del bucket, el ID de clave de acceso y la Clave de acceso secreta.
  2. Configurar dominio personalizado para CDN:
    • Para servir el contenido de tu bucket R2 públicamente, crea un dominio personalizado en Cloudflare.
    • Por ejemplo, usé forumfiles.example.in.
    • Asegúrate de configurar los ajustes de DNS para que apunten al CNAME proporcionado por Cloudflare. Como tengo un dominio en Cloudflare, lo hizo por mí.
  3. Configurar los ajustes del sitio de Discourse:
    • s3_bucket: El nombre de tu bucket R2 (por ejemplo, forum-uploads).
    • s3_region: Establecer como Este de EE. UU. (N. Virginia). No había opción de automático.
    • s3_endpoint: Usa la URL de la API S3 del bucket proporcionada por Cloudflare (por ejemplo, https://<tu-id-único-de-bucket>.r2.cloudflarestorage.com).
    • s3_access_key_id: Tu ID de clave de acceso de R2.
    • s3_secret_access_key: Tu Clave de acceso secreta de R2.
    • s3_cdn_url: Tu dominio personalizado para CDN (por ejemplo, https://forumfiles.example.in).
    • Asegúrate de que las casillas habilitar copias de seguridad s3 y habilitar cargas s3 estén marcadas.
  4. Ajustar permisos y CORS:
    • Establece tu bucket R2 como privado y configura una política CORS:
[
  {
      "AllowedHeaders": ["*"],
      "AllowedMethods": ["GET", "POST", "PUT", "HEAD"],
      "AllowedOrigins": ["*"],
      "ExposeHeaders": ["ETag"],
      "MaxAgeSeconds": 3000
  }
]
*   Esto asegura que las cargas funcionen correctamente sin problemas de CORS.
  1. Probar la configuración:
    • Sube un archivo o imagen de prueba a través de tu foro de Discourse para verificar que las cargas funcionen correctamente.
    • Comprueba si los archivos son accesibles a través de tu dominio personalizado (por ejemplo, https://forumfiles.example.in/original/1X/...).
    • Verifica las copias de seguridad, pude ejecutar copias de seguridad con éxito. Verifiqué en el bucket R2 y también aparece en la configuración del sitio.

Conclusión:

Siguiendo estos pasos, pude integrar Cloudflare R2 con Discourse sin problemas, gestionando tanto las cargas como las copias de seguridad de manera eficiente. Si tienes alguna pregunta o encuentras algún problema, ¡no dudes en preguntar!

6 Me gusta