Activer le paramètre caché pour inclure les téléchargements S3 dans les sauvegardes

:bookmark: 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 :

  1. Accédez à votre serveur Discourse via SSH.
  2. Entrez dans le conteneur Docker de Discourse en exécutant :
cd /var/discourse
./launcher enter app
  1. Lancez la console Rails :
rails c
  1. Activez le paramètre en exécutant :
SiteSetting.include_s3_uploads_in_backups = true
  1. 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:.

  1. Accédez au répertoire du conteneur de l’application Discourse :
cd /var/discourse
  1. Ouvrez le fichier app.yml situé dans containers :
nano containers/app.yml
  1. Sous la section env:, ajoutez la ligne :
DISCOURSE_INCLUDE_S3_UPLOADS_IN_BACKUPS: true
  1. Enregistrez le fichier et quittez l’éditeur.
  2. 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.

9 « J'aime »

N’est-il pas suffisant de détruire et de redémarrer le conteneur ?

1 « J'aime »

Je pense que vous n’avez pas besoin de détruire et que le redémarrage suffit. Je le confirmerai plus tard.

Quoi qu’il en soit, merci @pfaffman pour votre autre howto guide que j’ai utilisé comme modèle pour celui-ci.

2 « J'aime »

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.

3 « J'aime »

Pourquoi ce paramètre n’est-il pas suffisant pour inclure toutes les téléversations dans la sauvegarde :
image

Cela inclura les téléchargements locaux, mais ne téléchargera pas les fichiers qui se trouvent dans s3 pour les inclure dans la sauvegarde.

1 « J'aime »

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 configuré Configurer un fournisseur de stockage d’objets compatible S3 pour les téléchargements et déplacé vos téléchargements locaux vers S3, alors vos téléchargements sont là. Ils ne sont pas sauvegardés car on suppose que S3 est sauvegardé et que leur téléchargement est coûteux et généralement inutile.

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 ?).

1 « J'aime »

Merci. Encore.

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.

Mais je le ferais maintenant.

1 « J'aime »

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 ?

Toute explication sera utile.