Configura BackBlaze S3 con BunnyCDN

Así que revisé BunnyCDN. Puedo confirmar que la copia de seguridad no pasó por la CDN, ya que el tráfico muestra 0 KB. La URL de la CDN del host es diferente a la de la carga, por lo que parece que Discourse no la está utilizando. Sin embargo, puedo verificar que las copias de seguridad se están cargando en Backblaze B2 desde Discourse.

1 me gusta

Ah, genial, gracias por verificarlo. Eso confirma lo que sospechaba. Quizás @Bill debería actualizar la guía del OP.

1 me gusta

¡Claro! No estoy seguro de cómo redactarlo. ¿Debería simplemente indicar que solo necesitas una zona de extracción y que la CDN no puede acceder a un bucket privado?

1 me gusta

Eliminaría todo lo que va desde ‘En tu panel de control de BunnyCDN, debes crear una segunda zona de extracción’ hasta el párrafo que termina con ‘“nivel estándar 10$/TB” que usé para mi bucket de subidas.’

Además, parece que necesitas una segunda zona de extracción de CDN, pero no es para la copia de seguridad. Yo estaba confundido sobre esto y no pude hacer que las subidas externas funcionaran hasta que configuré correctamente una zona de extracción para enviar subidas a BackBlaze (como indicaste) y una segunda zona de extracción para obtener activos desde BackBlaze. Consulta mi pregunta sobre eso y la respuesta que recibí aquí para más información.

Parece que ya no tengo los permisos de Discourse para editar el hilo original; probablemente hayan expirado después de un tiempo determinado o porque lo edité demasiadas veces. No puedo acceder al área de edición.

Ah, vale. Supongo que tendrías que preguntarle a un moderador. De todos modos, aunque hubo un fallo, ¡estoy agradecido por tu guía!

1 me gusta

El primer post ahora es un wiki (lo era cuando lo revisé, no estoy seguro de si alguien lo editó antes) por lo que cualquier usuario con nivel TL1 o superior puede editarlo.

2 Me gusta

¡Hola! Solo quería comentar que Bunny también ha conseguido una asociación con Backblaze. Por lo tanto, la transferencia de Backblaze a Bunny es ahora completamente gratuita, así que, además de mayor seguridad, puedes transferir los datos a Bunny sin pasar por Cloudflare.

2 Me gusta

¿Es este paso excesivo? Supongo que una mejor pregunta podría ser… ¿qué tan significativos son los beneficios de dar este paso adicional si ya tienes Backblaze configurado para el almacenamiento y Bunny como CDN? Cualquier información sobre esto sería de gran ayuda para mí. :folded_hands:

Necesito ayuda. Me he pasado los últimos dos días investigando (perdón por el juego de palabras con conejos) para que las copias de seguridad y las imágenes se envíen a Backblaze.

He utilizado esta publicación del foro y otras para intentar configurarlo. Ahora sigo recibiendo un mensaje de error en las copias de seguridad (aunque todavía no he conseguido que las cargas funcionen, pero primero lo primero con las copias de seguridad).

He configurado buckets en Backblaze, claves y zonas de extracción.

Estas son la configuración en “All Site Settings” para S3

Esta es la configuración en “Backup Settings”

Este es mi app.yml: la segunda sección que está comentada, estuve jugando con ella ayer, pero hizo que Discourse se colgara en la pantalla de carga.

Cuando ejecuto las copias de seguridad, obtengo esta pantalla, supongo que porque no he conseguido que la parte de las cargas funcione. Puede que sea irrelevante, pero pensé que debería añadirla.

Este es el registro de errores en la copia de seguridad

Este es el registro de errores

También debería mencionar que ejecuté las tareas Rake usando

rake uploads:migrate_to_s3
rake posts:rebake

Mi cerebro está dando vueltas después de dos días intentando que funcione. ¿Alguien puede ayudarme a averiguar dónde me estoy equivocando? Espero haber incluido todo lo necesario para la solución de problemas. :tired_face:

1 me gusta

Si tienes la configuración en tu archivo yml, no aparecerán en la configuración del sistema.

Te recomiendo seguir Configurar un proveedor de almacenamiento de objetos compatible con S3 para subidas

Hola, gracias por la respuesta. Ayer intenté ese enlace y no funcionó. Provocó que dejara de cargar la página.

Lo más lejos que he llegado es con la configuración actual que tengo. Aunque parece que está quejándose de una región inválida y no estoy seguro de qué configuración necesito cambiar.

Eso es porque te perdiste la parte de arriba que sube los activos a s3

Agregué el código de los hooks y volví a usar la configuración del enlace que publicaste. Se cuelga de nuevo.

Volví a comentar esa configuración y puse la que estaba usando anteriormente. Noté que la configuración de la región s3 que tenía era la URL completa, así que la cambié a ‘us-west-002’.

Ahora, cuando ejecuto la copia de seguridad, falla y obtengo un error diferente: EXCEPTION: Se recibió una cabecera no admitida ‘x-amz-checksum-crc32’ para esta llamada a la API.

Creo que me rendiré y simplemente iré y descargaré manualmente las copias de seguridad todos los días.

He persistido intentando que esto funcione, a riesgo de perder la cabeza :wink:

Así que el último error de checksum que tuve lo resolví con la ayuda de esto: Can't rebuild due to AWS SDK gem bump and new AWS Data Integrity Protections - #28 by PatPatterson

Eso se hizo añadiendo lo siguiente a la sección env en app.yml:

AWS_REQUEST_CHECKSUM_CALCULATION: WHEN_REQUIRED
AWS_RESPONSE_CHECKSUM_VALIDATION: WHEN_REQUIRED

Y comentando esto en la sección de hooks de app.yml:

after_assets_precompile:
    - exec:
        cd: $home
        cmd:
          - sudo -E -u discourse bundle exec rake s3:upload_assets
  #        - sudo -E -u discourse bundle exec rake s3:expire_missing_assets

Las otras configuraciones de env están establecidas así:

DISCOURSE_S3_ACCESS_KEY_ID: 'key'
DISCOURSE_S3_SECRET_ACCESS_KEY: 'key'
DISCOURSE_BACKUP_LOCATION: 's3'
DISCOURSE_ENABLE_S3_UPLOADS: true
DISCOURSE_S3_BACKUP_BUCKET: 'backupbucketonbackblaze'
DISCOURSE_S3_REGION: 'us-west-002'
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true

Hice una copia de seguridad antes de incluir DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true.

Y tuve una copia de seguridad exitosa en Backblaze. ¡¡¡YEAH!!!

Cuando puse la línea en app.yml para incluir las subidas, la copia de seguridad tuvo un error que es el siguiente:

EXCEPTION: tar --append --file /var/www/discourse/public/backups/default/my-server-name-2025-04-17-222758-v20250417043438.tar uploads/default
Failed to append uploads to archive.
tar: uploads/default: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors

No estoy seguro de dónde se supone que está este directorio o cómo arreglarlo. ¿Es un directorio que necesito crear en el servidor de discourse o en Backblaze? ¿O es una configuración que me he saltado en la configuración del sitio o en app.yml?

Cualquier orientación sería muy apreciada.

1 me gusta