Pour un administrateur système expérimenté, la méthode privilégiée pour déplacer de grands fichiers consiste à utiliser un outil comme rsync ou scp. Cependant, il arrive parfois que vous n’ayez pas accès SSH à l’hôte où vous devez récupérer une grande sauvegarde.
Comme les fichiers de sauvegarde contiennent des informations sensibles, Discourse dispose de fonctionnalités de sécurité qui rendent très difficile pour une personne non autorisée de récupérer une sauvegarde. Vous devez obtenir un lien de téléchargement par e-mail et l’utiliser en étant connecté en tant que l’utilisateur qui a demandé la sauvegarde. Si vous souhaitez télécharger les données via un navigateur web, l’opération est assez simple. En revanche, si vous voulez transférer cette sauvegarde vers un autre serveur sur Internet, la plupart des connexions Internet résidentielles rendent cette tâche très pénible. Sur ma connexion Internet domestique, un fichier de 2,3 Go prend plus de 20 minutes à télécharger. Le fichier de 12 Go présent ici prendrait environ deux heures.
Voici comment obtenir un lien vous permettant de récupérer une sauvegarde depuis un site Discourse via wget.
Tout d’abord, lancez le téléchargement comme d’habitude, puis ouvrez la page de téléchargements de Chrome (chrome://downloads/). Faites un clic droit sur l’URL et copiez-la.
Ensuite, dans un terminal sur la machine où vous souhaitez placer le fichier, vous pouvez coller cette URL dans une commande wget. Assurez-vous de mettre des guillemets autour de l’URL, car les caractères & pourraient causer des problèmes. Vous devez également conserver le nom d’origine du fichier de sauvegarde. Votre commande devrait ressembler à ceci :
wget --show-progress "https://bucket-name.s3.us-west-2.amazonaws.com/backups/xyz/multisitename/discourse-2020-11-19-001538-v20201116132948.tar.gz?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAWWK5WHOFJ%2F20201119%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20201119T013442Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=1753b97a8aaf6953c89aa28628b8db" -o discourse-2020-11-19-001538-v20201116132948.tar.gz
Vous pouvez également omettre l’option -o filename et renommer le fichier (qui aura l’URL complète comme nom) après le téléchargement. L’URL est limitée dans le temps, vous devez donc lancer le téléchargement lorsque vous êtes prêt à récupérer le fichier sur votre serveur.
Vous pouvez ensuite déplacer le fichier vers /var/discourse/shared/standalone/backups/default et le restaurer depuis l’interface web ou en exécutant :
cd /var/discourse
./launcher enter app
discourse enable_restore
discourse restore
La dernière commande affichera la liste des sauvegardes disponibles ; vous pourrez alors copier-coller la bonne pour démarrer la restauration.

