Ce guide explique comment activer un paramètre caché dans Discourse pour inclure les téléchargements Amazon S3 (Simple Storage Service) dans vos sauvegardes.
Discourse a la capacité de stocker les téléchargements de médias sur Amazon S3 pour l’évolutivité et la fiabilité. Cependant, ces téléchargements ne sont pas inclus dans les sauvegardes par défaut.
Ce guide couvre l’activation d’un paramètre caché pour inclure les téléchargements S3 dans les sauvegardes, avec des options pour le configurer via la console Rails ou le fichier app.yml.
Utilisation de la console Rails
Pour activer l’inclusion des téléchargements S3 dans les sauvegardes via la console Rails, vous pouvez suivre ces étapes :
Accédez à votre serveur Discourse via SSH.
Entrez dans le conteneur Docker de Discourse en exécutant :
cd /var/discourse
./launcher enter app
Lancez la console Rails :
rails c
Activez le paramètre en exécutant :
SiteSetting.include_s3_uploads_in_backups = true
Quittez la console et le conteneur en tapant :
exit
exit
Cette modification prend effet immédiatement. Aucune autre action n’est nécessaire.
Modification du fichier app.yml
Vous pouvez également apporter cette modification en ajoutant et en modifiant le fichier app.yml dans la section env:.
Accédez au répertoire du conteneur de l’application Discourse :
cd /var/discourse
Ouvrez le fichier app.yml situé dans containers :
nano containers/app.yml
Sous la section env:, ajoutez la ligne :
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
Enregistrez le fichier et quittez l’éditeur.
Appliquez les modifications en reconstruisant l’application :
./launcher rebuild app
Pour que cette modification prenne effet, vous devez exécuter la commande ./launcher rebuild app pour appliquer le paramètre.
Je suis certain que vous devez détruire et redémarrer pour modifier les variables d’environnement appliquées au conteneur.
Bien sûr, s’ils ont effectué des mises à niveau avec le gestionnaire Docker, celles-ci seront perdues lorsque le conteneur sera détruit, c’est pourquoi la reconstruction est la recommandation la plus sûre. Peut-être vaut-il mieux recommander la reconstruction car c’est la plus infaillible.
Ok. Je ne savais pas.
Mais quelle est la différence entre les « Téléchargements locaux » et le dossier « Fichiers stockés dans S3 ‘Téléchargements’ » ?
De plus, bien que je n’aie pas encore modifié le paramètre dans web_only ou dans la console Rails comme indiqué ci-dessus, j’ai seulement choisi le paramètre indiqué ici.
Mais quand même, lorsque j’ai exécuté la sauvegarde, il y a 10 minutes, il a semblé télécharger des milliers de fichiers (que je suppose ne pourraient être que sur mon bucket de stockage AWS S3, et le mot « Télécharger » lui-même signifie qu’il télécharge depuis le dossier distant S3).
Il indique également qu’il a « Échoué à télécharger » de nombreux fichiers. J’ai donc supposé que si ces fichiers étaient sur le serveur cloud local, pourquoi manquerait-il d’inclure ces fichiers dans la sauvegarde ? Voir cette capture d’écran :
Si vous avez besoin de les récupérer de S3 (par exemple, si vous êtes hébergé sur discourse.org et que vous déménagez vers un autre hébergement), vous avez besoin d’une sauvegarde qui inclut les fichiers stockés sur S3.
Pourquoi voulez-vous télécharger vos fichiers depuis S3 ?
Oui, il semble qu’il n’arrive pas à télécharger les fichiers depuis S3. Je suppose qu’il n’en a téléchargé aucun, bien qu’il soit possible que votre disque soit plein, peut-être (je m’attendrais à une erreur de disque plein, mais peut-être pas ?).
Mon site étant très très petit, payer quelques dollars, qui augmentent chaque mois avec de petites mises à jour, chaque mois pour le stockage Aws S3 s’avère un peu peu pratique pour moi. Je vais déplacer le dossier « Uploads » (et peut-être aussi le dossier « backup ») vers un autre fournisseur comme Google One Drive, iDrive, Hetzner, etc., des alternatives bon marché.
Je constate maintenant que même les différents types de stockage d’Aws (de celui le plus actif au stockage d’archivage), si je les avais choisis judicieusement au début, me coûteraient seulement la moitié pour la même quantité/nombre de fichiers.
Lorsque j’ai choisi de stocker mes médias ‘uploads’ dans un bucket AWS S3 il y a des années, à ce moment-là (autant que je sache), j’ai AUSSI DÉPLACÉ tous les médias existants téléchargés par les utilisateurs vers S3.
De plus, j’ai vérifié maintenant dans mon dossier /var/discourse/shared/web_only/uploads/default/optimized/1X, il n’a que 63 fichiers png et /var/discourse/shared/web_only/uploads/default/original/1X n’en a que 3. (À l’exception de 1x, aucun autre dossier similaire n’existe dans le dossier ‘uploads ou default’.
De plus, je n’ai PAS encore changé d’option dans la console Rails ou dans le fichier Yml pour inclure les téléchargements S3 dans mes sauvegardes. Alors, pourquoi indique-t-il qu’il a téléchargé autant de ‘Media Uploads’ DEPUIS S3 !!!
Et, qu’il a échoué à télécharger autant de fichiers téléchargés ? Capture d’écran ici.
De plus, mon dossier d’uploads sur S3 fait environ 3 Go (32k fichiers), alors que les journaux de sauvegarde ont montré qu’il n’a téléchargé qu’environ 3,2k (10% du total).
Très déroutant.
Existe-t-il une AUTRE commande Rails pour être sûr que cette option n’a pas été activée il y a des années, lorsque j’ai migré vers Aws S3 ?