J’essaie quelques choses sur Cloudflare et j’envisageais de quitter R2 à l’avenir. C’est pourquoi, lorsque j’examinai les sauvegardes, je vis que les installations n’étaient pas incluses et que cela générait une erreur. Lors de la sauvegarde manuelle, la même erreur apparaît dans les journaux de transactions. Les images et les fichiers locaux sont sauvegardés, mais les images sur Cloudflare R2 ne le sont pas.
Un exemple d’erreur :
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>'
C’est attendu, et c’est en grande partie le but de S3/R2 : vous n’avez pas besoin de sauvegarder les éléments. Mais il existe un paramètre caché qui téléchargera toutes les images de S3 et les placera dans la sauvegarde.
Oh, mais vous avez bien DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true.
Donc, peut-être que R2 ne fonctionne pas comme suggéré à l’origine. Je pensais l’avoir testé et que ça avait fonctionné, mais je n’ai pas essayé de télécharger les images dans la sauvegarde et je n’ai probablement pas essayé de faire une restauration ou de télécharger un fichier de sauvegarde.
Cela appartient probablement à l’autre sujet car cela semble contredire l’hypothèse « peut-être que ça marche » qui y est présentée.
Ce paramètre est actif, mais malheureusement, il n’importe pas les images de R2 lors de la sauvegarde. Vous pouvez le voir dans le journal lors d’une sauvegarde manuelle.
Je suis indécis et je pense abandonner le CDN pour utiliser le stockage local. En fait, c’est ce qui est prévu, au cas où les avis changeraient.
Je vais soulever le problème à nouveau, mais il se remplit de codes d’erreur à chaque sauvegarde automatique. S’il n’est pas sauvegardé, je pense qu’il serait préférable de ne pas demander les fichiers sur S3 pour éviter de perdre du temps. Ainsi, nous ne remplissons pas le fichier avec des codes d’erreur inutiles.
Ma supposition est que cela ne vous permettra pas de les télécharger car il essaie de vous protéger contre le vol de toutes vos images. Cela ressemble à une autre façon dont R2 n’est pas compatible avec discourse.
Je suis sur R2 depuis longtemps. Tout semble bien, il y a juste quelques problèmes (comme ci-dessus) mais ils peuvent être résolus. Avec le temps, la communauté travaillera sur ce problème, en attendant, bonne chance à vous
C’est intéressant ! Je ne vous ai vu vous plaindre que des choses qui ne fonctionnaient pas. Mes tests rapides semblaient indiquer que cela fonctionnait, mais je n’ai pas testé de manière approfondie.
Une sorte de limitation de débit est ma meilleure hypothèse pour les téléchargements de sauvegarde, bien que je pense qu’il y aurait des erreurs ?
Après vos tests, nous avons exécuté R2 et mes problèmes avec R2 étaient les suivants :
Lorsque j’ai désactivé S3, les connexions se sont transformées en étranges connexions R2 (ce que j’ai vu en regardant dans Docker). Et lorsque j’ai essayé de le corriger et de le refaire, les images sur le site volaient et étaient déformées. Après l’avoir corrigé après quelques tentatives, j’ai configuré R2 uniquement pour le téléchargement et je l’utilise. Je n’ai donc pas encore trouvé de solution pour m’en débarrasser (ou je n’ai pas pu).
Une autre chose était qu’un message d’erreur était produit lors de la sauvegarde. Compte tenu qu’il y a 10 000 images, cela remplit inutilement les journaux d’erreurs. Cela peut parfois nous faire manquer des problèmes importants. (Il serait peut-être préférable qu’il ne donne pas de message d’erreur, mais il faut noter que les données sur S3 ne seront pas ajoutées à la sauvegarde)
Je ne me souviens pas avoir eu d’autres problèmes que ceux-ci. Si je veux sauvegarder les fichiers sur R2, je peux me connecter via winscp et les télécharger sur mon ordinateur. Si quelqu’un appelle, laissons une note ici
Il m’est venu à l’esprit que ceux qui utilisent S3 peuvent désactiver ce paramètre « sauvegarder avec les téléchargements ». nous pouvons donc supprimer le message d’erreur. Pourquoi n’y ai-je pas pensé avant…