\n[2026-05-11 02:05:14] Reconnexion à la base de données...\n[2026-05-11 02:05:14] Rechargement des paramètres du site...\n[2026-05-11 02:05:14] Désactivation des e-mails sortants pour les utilisateurs non membres du personnel...\n[2026-05-11 02:05:14] Exécution de seed fu...\n[2026-05-11 02:05:31] Désactivation du mode lecture seule...\n[2026-05-11 02:05:31] Vidage du cache des catégories...\n[2026-05-11 02:05:31] Rechargement des traductions...\n[2026-05-11 02:05:31] Réaffectation des fichiers uploadés...\n[2026-05-11 02:05:31] Restauration des fichiers uploadés, cela peut prendre un certain temps...\n[2026-05-11 02:05:33] EXCEPTION : Vous ne pouvez spécifier qu'une seule somme de contrôle non par défaut à la fois.\n[2026-05-11 02:05:33] /var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in 'Seahorse::Client::Plugins::RaiseResponseErrors::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in 'Aws::S3::Plugins::SseCpk::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21:in 'Aws::S3::Plugins::Dualstack::OptionHandler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43:in 'Aws::S3::Plugins::Accelerate::OptionHandler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:167:in 'Aws::Plugins::ChecksumAlgorithm::OptionHandler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16:in 'Aws::Plugins::JsonvalueConverter::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/invocation_id.rb:16:in 'Aws::Plugins::InvocationId::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in 'Aws::Plugins::IdempotencyToken::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in 'Aws::Plugins::ParamConverter::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/plugins/request_callback.rb:89:in 'Seahorse::Client::Plugins::RequestCallback::OptionHandler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in 'Aws::Plugins::ResponsePaging::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/plugins/response_target.rb:24:in 'Seahorse::Client::Plugins::ResponseTarget::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in 'block in Aws::Plugins::Telemetry::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/telemetry/no_op.rb:29:in 'Aws::Telemetry::NoOpTracer#in_span'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/telemetry.rb:53:in 'Aws::Plugins::Telemetry::Handler#span_wrapper'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in 'Aws::Plugins::Telemetry::Handler#call'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-core-3.244.0/lib/seahorse/client/request.rb:72:in 'Seahorse::Client::Request#send_request'\n/var/www/discourse/vendor/bundle/ruby/3.4.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:17315:in 'Aws::S3::Client#put_object'\n/var/www/discourse/lib/file_store/to_s3_migration.rb:216:in 'block (2 levels) in FileStore::ToS3Migration#migrate_to_s3'\n[2026-05-11 02:05:33] Tentative de retour en arrière...\n[2026-05-11 02:05:33] Retour en arrière en cours...\n[2026-05-11 02:05:34] Nettoyage...\n[2026-05-11 02:05:34] Suppression des fonctions du schéma discourse_functions...\n[2026-05-11 02:05:34] Suppression du répertoire temporaire '/var/www/discourse/tmp/restores/default/2026-05-11-020447'...\n[2026-05-11 02:05:34] Réactivation de sidekiq...\n[2026-05-11 02:05:34] Marquage de la restauration comme terminée...\n[2026-05-11 02:05:34] Notification à 'niege' de la fin de la restauration...\n\nComment résoudre ce problème ?
Je pense qu’il y a peut-être un problème avec la compatibilité S3 ?
L’instance vers laquelle vous effectuez la restauration est-elle à jour avec la dernière version de Discourse ?
Je pense qu’il y a un problème ici :
/var/www/discourse/lib/file_store/to_s3_migration.rb
peut-être avec la charge utile envoyée à put_object à la ligne 216.
Je ne suis pas sûr de la solution complète, mais pour que cela fonctionne, vous devrez peut-être désactiver S3 (enable_s3_uploads: false) et effectuer la restauration et l’extraction localement. Ensuite, réactivez S3 en utilisant la commande rake uploads:migrate_to_s3 ?
@Lilly
Le serveur arrivant à expiration, nous devons le migrer vers un nouveau serveur. J’ai d’abord sauvegardé les données de Discourse.
Synchronisez le fichier app.yml vers le nouveau serveur, puis sur ce dernier exécutez :
./launcher rebuild app
Ensuite, téléversez la sauvegarde des données dans le répertoire /var/discourse/shared/standalone/backups/default du nouveau serveur.
Utilisez les commandes suivantes :
./launcher enter app
discourse enable_restore
discourse restore xxxxxxxxxxxxxxxxxxxxx.tar.gz
La restauration a échoué. Après avoir recréé une nouvelle instance de Discourse, j’ai tenté une restauration depuis l’interface d’administration, mais cela a de nouveau échoué. Vous trouverez ci-joint le journal de la restauration.
log.txt (124.0 KB)
Parlez-nous de votre environnement, par exemple quel magasin d’objets utilisez-vous ?
Ubuntu 24.04.4 LTS (x86_64)
Cloudflare R2
@supermathie Cloudflare R2 n’est-il pas compatible ?
Oui, il semble y avoir une incompatibilité avec R2.
Non testé, mais vous pouvez essayer ceci :
Les variables d’environnement sont définies dans le fichier app.yml de votre conteneur, sous le bloc env — exactement là où vous avez déjà des éléments comme DISCOURSE_S3_ACCESS_KEY_ID. Ajoutez simplement les deux variables là :
env:
LANG: en_US.UTF-8
# ... vos variables existantes ...
DISCOURSE_S3_BUCKET: votre-seau-r2
DISCOURSE_S3_ACCESS_KEY_ID: ...
DISCOURSE_S3_SECRET_ACCESS_KEY: ...
DISCOURSE_S3_ENDPOINT: https://<compte>.r2.cloudflarestorage.com
# Correctif pour l'incompatibilité de calcul de somme de contrôle Cloudflare R2 avec aws-sdk-s3
AWS_REQUEST_CHECKSUM_CALCULATION: when_required
AWS_RESPONSE_CHECKSUM_VALIDATION: when_required
Ensuite, reconstruisez le conteneur :
./launcher rebuild app
@gerhard
J’ai essayé cette méthode, mais cela ne fonctionne toujours pas.
Le problème actuel est que mon serveur est déjà hors ligne. Je ne dispose que des données de sauvegarde et du fichier app.yml.
Ces valeurs sont indiquées dans notre guide.
Pouvez-vous publier ici le bloc ENV masqué afin que nous puissions vérifier s’il y a un autre problème ?
Essayez maintenant de récupérer les données, mais la commande rake uploads:migrate_to_s3 échoue constamment.