Me llevó una eternidad averiguar cómo hacer todo esto, así que quise crear esta guía para facilitárselo a otros. Servir tus imágenes de esta manera debería hacer que tu sitio web cargue más rápido. Mi configuración de Discourse combina un droplet de DigitalOcean, BackBlaze B2 S3, BunnyCDN y la versión gratuita de Cloudflare.
Elegí estos servicios después de investigar un poco sobre fiabilidad, precios y pruebas de rendimiento. Parecían las mejores opciones para mí. Cloudflare ayuda con la seguridad, pero también ralentizará ligeramente el sitio, según lo que entiendo, por lo que deberías investigar eso. Backblaze tiene asociaciones tanto con Cloudflare como con Bunny que permiten transferencias de datos gratuitas.
Aunque Cloudflare se llama CDN, no funciona como las CDN regulares y probablemente no funcionará por sí sola para configurar S3 con Discourse. Posiblemente necesitarás otro proveedor de CDN; BunnyCDN funciona bien para mí. Si alguien lo ha logrado solo con Cloudflare, avísame cómo ![]()
Cómo configurar las cargas en S3:
Primero, debes registrarte en Backblaze, luego crear buckets e insertar los detalles en la configuración de Discourse:
Luego regístrate en BunnyCDN y sigue esta guía:
bunny.net - The Global Edge Platform that truly Hops (enlace de referencia, obtengo un crédito de 20 $ en mi factura)
Después de crear tu zona de extracción (pull zone) en BunnyCDN, necesitas obtener la URL correcta para insertarla en la configuración del backend de administración de Discourse para “s3 cdn url”. Ve a tu panel de control de bunnycdn > zonas de extracción > administrar zonas de extracción > haz clic en tu zona > copia la URL junto a “host name”.
La URL debería verse algo así: example.b-cdn.net, pero debes asegurarte de poner https:// al principio, así: https://example.b-cdn.net
Guarda los cambios en el área de configuración de administración de Discourse.
Presiona Ctrl+F5 dos veces en tu navegador en tu sitio de Discourse.
Realiza una prueba subiendo una imagen en el compositor de texto de Discourse. Inspecciona el elemento de la imagen de prueba o visualiza el origen de las imágenes para asegurarte de que funcionó. La URL debería verse diferente a tu dominio normal; debería ser algo como example.b-cdn.net / nombre_archivo.
Ahora, cada vez que alguien suba una imagen, estará en tu bucket de Backblaze y no ocupará espacio en tu droplet de DigitalOcean ![]()
Respaldar cargas en S3
Si deseas configurar los respaldos de Discourse para que se guarden en tu bucket de Backblaze, debes hacer lo siguiente:
En la guía que publiqué más arriba en este hilo, presta atención a cómo explica que necesitas dos buckets separados. Un bucket es público; este es tu bucket de cargas para que los usuarios suban imágenes en tu foro. El otro bucket es privado; este es tu bucket de respaldos. Es importante hacer respaldos automatizados de Discourse por si algo falla; así podrás cargar tu respaldo y solucionarlo.
En tu panel de control de BunnyCDN, debes crear una segunda zona de extracción. Tu primera zona de extracción era para cargas; esta nueva zona de extracción será para respaldos.
panel de control de bunnycdn > zonas de extracción > agregar zona de extracción
Sigue la misma guía que enlazé anteriormente, “Cómo acelerar la entrega de archivos de Backblaze B2 con BunnyCDN” de BunnyCDN, pero esta vez vincula la nueva zona de extracción a tu bucket de respaldos en lugar de tu bucket de cargas.
Recomiendo usar el “nivel de alto volumen de 5 /TB" en la página de creación de zonas de extracción de BunnyCDN; creo que los respaldos no necesitan el nivel más costoso/rápido "nivel estándar de 10 /TB” que usé para mi bucket de cargas.
Configura tus opciones de respaldo en el área de configuración de administración de Discourse. “ubicación del respaldo” debe estar configurada en S3 y “endpoint de S3” debe apuntar a lo que tienes en Backblaze, algo así:
s3.us-west-002.backblazeb2.com
CTRL+F5 dos veces en tu sitio web para borrar la caché.
Inicia un respaldo y deja que termine. Luego espera 5 minutos y revisa tu carpeta de respaldos en Backblaze; deberías ver el nuevo respaldo allí.
Migrar imágenes antiguas:
Este paso es opcional pero recomendado, especialmente si tienes poco almacenamiento en tu servidor. Así que ya tienes todo configurado para las nuevas cargas de imágenes, pero las imágenes antiguas también pueden transferirse a tus buckets. Para que este proceso funcione, debes seguir esto:
Configurar Cloudflare CDN
Este paso es opcional, ya que Backblaze ha establecido una asociación que hace que la transferencia de datos a Bunny sea gratuita también, pero para seguridad adicional y otras funciones, puedes hacer que los datos pasen primero por Cloudflare y luego hacer que Bunny extraiga los datos desde donde Cloudflare los deja.
https://help.backblaze.com/hc/en-us/articles/217666928-Using-Backblaze-B2-with-the-Cloudflare-CDN


