Las cargas en Cloudflare R2 no se agregan a la copia de seguridad: Error al descargar ******* debido a Aws::S3::Errors::Http501Error

Estoy probando algunas cosas en Cloudflare y estaba pensando en dejar R2 en el futuro. Por eso, cuando examinaba las copias de seguridad, vi que las instalaciones no estaban incluidas y daba un error. Al hacer una copia de seguridad manualmente, da el mismo error en los registros de transacciones. Las imágenes y archivos locales se copian de seguridad, pero las imágenes en Cloudflare R2 no se copian de seguridad.

Un ejemplo de código de error:

Failed to download original/1X/4b8754c367e54bc5271454a09b8bd4c1a8b882d5.png because Aws::S3::Errors::Http501Error
/var/www/discourse/lib/s3_helper.rb:280:in `rescue in download_file'
/var/www/discourse/lib/s3_helper.rb:277:in `download_file'
/var/www/discourse/lib/file_store/s3_store.rb:338:in `download_file'
/var/www/discourse/lib/backup_restore/backuper.rb:321:in `block in add_remote_uploads_to_archive'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:71:in `block in find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:138:in `block in find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:245:in `block in in_batches'
internal:kernel:187:in `loop'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:229:in `in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:137:in `find_in_batches'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/relation/batches.rb:70:in `find_each'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activerecord-7.0.8.4/lib/active_record/querying.rb:22:in `find_each'
/var/www/discourse/lib/backup_restore/backuper.rb:315:in `add_remote_uploads_to_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:248:in `create_archive'
/var/www/discourse/lib/backup_restore/backuper.rb:40:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:9:in `backup'
/var/www/discourse/script/spawn_backup_restore.rb:31:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'

Mi configuración es la siguiente:

Gracias

Eso es esperado, y en su mayor parte el propósito de S3/R2 es que no necesites respaldar las cosas. Pero hay una configuración oculta que descargará todas las imágenes de S3 y las pondrá en la copia de seguridad.

Oh, pero tienes DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true.

Así que tal vez R2 no funciona como se sugirió originalmente. Pensé que lo había probado y que funcionaba, pero no intenté descargar imágenes a la copia de seguridad y probablemente no intenté hacer una restauración o descargar un archivo de copia de seguridad.

Esto probablemente pertenece a ese otro tema, ya que parece contradecir la hipótesis de “tal vez funcione” presentada allí.

Esta configuración está activa, pero desafortunadamente no importa las imágenes de R2 al realizar copias de seguridad. Puede ver esto en el registro al realizar una copia de seguridad manual.

No estoy decidido y estoy pensando en abandonar cdn y usar almacenamiento local. De hecho, se espera que esto suceda, en caso de que las opiniones cambien.

Gracias por tomarse el tiempo de responder.

Volveré a plantear el problema, pero se llena de códigos de error con cada copia de seguridad automática. Si no se realiza una copia de seguridad, creo que sería mejor no solicitar los archivos en S3 para evitar perder el tiempo. De esta manera, no llenamos el archivo con códigos de error innecesarios.

Mi suposición es que no te permitirá descargarlos porque está tratando de protegerte de que alguien robe todas tus imágenes. Suena como otra forma en que R2 no es compatible con discourse.

1 me gusta

He estado en R2 durante mucho tiempo. Todo se ve bien, solo hay algunos problemas (como el anterior) pero se pueden solucionar. Con el tiempo, la comunidad trabajará en este problema, hasta entonces, buena suerte :slight_smile:

¡Eso es interesante! Solo te he visto quejarte de cosas que no funcionaban. Mis pruebas rápidas parecieron funcionar, pero no probé extensivamente.

Supongo que algún tipo de limitación de velocidad es mi mejor suposición para las descargas de respaldo, aunque pensaría que habría errores.

1 me gusta

Después de sus pruebas, ejecutamos R2 y mis problemas :clap: :clap: con R2 fueron los siguientes:
Cuando apagué S3, las conexiones se convirtieron en extrañas conexiones R2 (lo que vi al mirar en Docker). Y cuando intenté arreglarlo y volver a hornear, las imágenes en el sitio salieron volando y distorsionadas. Después de corregirlo después de algunos intentos, configuré R2 solo para subir y usarlo. Así que aún no he encontrado una manera de deshacerme de él (o no pude).
Otro fue que produjo un mensaje de error cuando se realizó la copia de seguridad. Teniendo en cuenta que hay 10 mil imágenes, llena los registros de errores en vano. Esto a veces puede hacer que nos perdamos problemas importantes. (Puede ser mejor si no da un mensaje de error, pero se debe tener en cuenta que los datos en S3 no se agregarán a la copia de seguridad)

No recuerdo haber tenido ningún problema aparte de estos. Si quiero hacer una copia de seguridad de los archivos en R2, puedo conectarme a través de winscp y descargarlos a mi computadora. Si alguien llama, dejemos una nota aquí :slight_smile:

Se me acaba de ocurrir que quienes usan S3 pueden desactivar esta configuración “copia de seguridad con cargas”. Así podemos eliminar el mensaje de error. ¿Por qué no se me ocurrió antes… :rofl::rofl:

1 me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.