J’essaie de migrer toutes les données de S3 vers mon serveur. Cependant, rake uploads:migrate_from_s3 renvoie l’erreur « Vous devez désactiver les uploads S3 avant d’exécuter cette tâche ». J’ai donc décoché l’option activer les uploads S3 dans les paramètres de Discourse et ajouté DISCOURSE_USE_S3: false dans mon fichier app.yml. Mais toujours rien, la même erreur.
Qu’est-ce qu’une variable d’environnement S3 ? Dans mon cas, DISCOURSE_USE_S3 est conservé dans l’environnement.
env:
LANG: en_US.UTF-8
# DISCOURSE_DEFAULT_LOCALE: en
UNICORN_WORKERS: 2
## TODO : Nom de domaine auquel cette instance Discourse répondra
DISCOURSE_HOSTNAME: engineersasylum.com
## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
## nom d'hôte (option -h) que spécifié ci-dessus (par défaut "$hostname-$config")
#DOCKER_USE_HOSTNAME: true
## TODO : Liste d'adresses e-mail séparées par des virgules qui seront définies comme administrateur et développeur
## lors de l'inscription initiale, par exemple 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'praveen369gen@gmail.com'
# Configuration S3
DISCOURSE_USE_S3: false
DISCOURSE_S3_REGION: ap-south-1
DISCOURSE_S3_ACCESS_KEY_ID: AKxxxxxxxxxxxxxxxxxxxxxDQ
DISCOURSE_S3_SECRET_ACCESS_KEY: QWVxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxLigGs
DISCOURSE_S3_BUCKET: enginxxxxxxxxxxket
DISCOURSE_S3_BACKUP_BUCKET: enginxxxxxxxxxxxxcket
DISCOURSE_BACKUP_LOCATION: s3
… et n’oubliez pas @Pravi que vous devez reconstruire votre conteneur (application) après avoir modifié la plupart des variables dans votre fichier yml ; certaines peuvent changer en arrêtant et en redémarrant votre conteneur, mais en cas de doute, reconstruisez le conteneur (application) après avoir apporté une modification à votre yml.
J’ai ajouté local à l’emplacement de sauvegarde, puis reconstruit le conteneur et tenté la migration, mais toujours sans succès. Cela me dit : Vous devez désactiver les téléchargements S3 avant d’exécuter cette tâche.
Après avoir reconstruit avec DISCOURSE_USE_S3=false dans le fichier yml, avez-vous exécuté la tâche rake et cela indique-t-il toujours « Vous devez désactiver les téléchargements S3 » ? Avez-vous également désactivé S3 dans votre panneau d’administration ?
Oui, j’ai ajouté DISCOURSE_USE_S3=false dans app.yml, puis j’ai reconstruit le conteneur et exécuté la tâche rake, mais cela me donne toujours la même sortie. Oui, j’ai désactivé les téléchargements dans la page d’administration.
Je ne comprends pas comment ce dernier peut être vrai si vous avez défini la variable d’environnement à false et reconstruit. Les paramètres SiteSetting proviennent de votre panneau d’administration, tandis que GlobalSettings est configuré via app.yml.
La désactivation de DISCOURSE_USE_S3 et DISCOURSE_S3_BUCKET me donne cette erreur :
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migration des fichiers depuis S3 vers le stockage local pour 'default'...
rake aborted!
NoMethodError: undefined method `downcase' for nil:NilClass
/var/www/discourse/app/models/global_setting.rb:107:in `s3_bucket_name'
/var/www/discourse/app/models/site_setting.rb:157:in `absolute_base_url'
/var/www/discourse/lib/tasks/uploads.rake:138:in `migrate_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:118:in `block in migrate_all_from_s3'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:118:in `migrate_all_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:93:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_from_s3
(Voir la trace complète en exécutant la tâche avec --trace)
Mise à jour :
Avant la désactivation de DISCOURSE_USE_S3 et DISCOURSE_S3_BUCKET :
J’ai aussi essayé cela. J’ai commenté tout sauf DISCOURSE_USE_S3: false, mais la même erreur que précédemment réapparaît.
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_from_s3
Migrating uploads from S3 to local storage for 'default'...
rake aborted!
NoMethodError: undefined method `downcase' for nil:NilClass
/var/www/discourse/app/models/global_setting.rb:107:in `s3_bucket_name'
/var/www/discourse/app/models/site_setting.rb:157:in `absolute_base_url'
/var/www/discourse/lib/tasks/uploads.rake:138:in `migrate_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:118:in `block in migrate_all_from_s3'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:118:in `migrate_all_from_s3'
/var/www/discourse/lib/tasks/uploads.rake:93:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => uploads:migrate_from_s3
(See full trace by running task with --trace)
Les paramètres SiteSetting et GlobalSettings sont désactivés.