Migration vers S3
Ces instructions concernent la v5.x et les versions ultérieures. Si vous suivez ce guide pour une version antérieure, utilisez
sharelatex au lieu de overleaf dans les noms de chemins et le préfixe SHARELATEX_ au lieu de OVERLEAF_ pour les variables d’environnement. Pour la v6 et les versions ultérieures, ignorez les anciennes commandes user_files.Nous aimerions avoir de vos nouvelles ! Si vous souhaitez nous indiquer combien de fichiers vous avez migrés, leur volume total et la durée de la migration, envoyez un e-mail à
ayaka-notes@outlook.com.Prérequis
- Un stockage objet compatible S3 avec lequel communiquer ; voir #s3-setup pour les options
- De l’espace disque libre pour migrer les données existantes, environ la taille actuelle sur disque
- Une fenêtre de maintenance pour effectuer la migration proprement dite
- Une sauvegarde complète, configuration comprise, permettant une restauration
Estimer l’espace disque nécessaire à la migration
Nous pouvons utiliserdu pour calculer l’utilisation actuelle du disque :
Les répertoires d’historique ont déjà la bonne structure. Vous pouvez les téléverser directement depuis le dossier source monté (bind-mount), ce qui ne nécessite aucun espace disque supplémentaire.
Étapes de migration
Étape 0 : arrêter l’instance
Nous devons nous assurer que tous les fichiers utilisateurs et de modèles seront migrés. Il est préférable d’arrêter l’instance pour éviter de manquer des fichiers nouvellement téléversés. Consultez notre guide sur la réalisation d’une sauvegarde cohérente pour la procédure d’arrêt.Étape 1 : réécrire la structure des répertoires
Nous devons réécrire la structure des répertoires des fichiers de projet pour les téléverser vers S3. La structure de répertoires du stockage local dans le filestore est<project-id>_<file-id> et celle dans S3 est <project-id>/<file-id>.
Dans la suite, /srv/overleaf-s3-migration est utilisé pour stocker les fichiers dans la nouvelle structure de répertoires. Remplacez /srv/overleaf-bind-mount par le répertoire de l’hôte monté sur /var/lib/overleaf. Exécutez les commandes de copie sur l’hôte avec les permissions nécessaires pour lire et écrire dans ces répertoires ; le conteneur reste arrêté.
Nous pouvons utiliser tar pour réécrire la structure :
Étape 2 : téléverser les fichiers
Selon vos préférences, vous pouvez utiliser le client S3 minio mc ou l’aws cli pour téléverser les fichiers vers votre stockage objet compatible S3. aws cli- Remplacez ici
overleaf-user-files,overleaf-template-files,overleaf-project-blobsetoverleaf-chunkspar les noms de vos buckets S3. - Remplacez également
/srv/overleaf-bind-mountpar le chemin local du bind-mount/var/lib/overleaf. Par défaut, il s’agit de~/overleaf_datadans un déploiement docker-compose.yml et de<toolkit-checkout>/data/overleafavec le Toolkit.
Étape 3 : démarrer l’instance en la pointant vers S3
Ajoutez toutes les variables liées à S3 à votre configuration, comme indiqué dans la section Aperçu des variables du guide de configuration S3. Conservez le bind-mount du répertoire de données : il peut également contenir des clés de chiffrement Zotero ou Mendeley qui ne sont pas migrées vers S3. Vous pouvez maintenant démarrer l’instance et valider la migration :- prévisualisation des fichiers binaires dans l’éditeur
- compilation d’un PDF contenant des images
- téléversement de nouveaux fichiers
Revenir en arrière
Vous pouvez annuler la migration proprement en inversant les étapes :- Arrêtez l’instance
- Recopiez les fichiers en inversant l’ordre source/destination
- Réécrivez les nouveaux fichiers dans le répertoire local à l’aide d’un
transforminverse - Redémarrez l’instance avec l’ancienne configuration
La première transformation supprime le dossier de premier niveau. La seconde transforme la structure de répertoires en structure plate. Les jokers (wildcards) garantissent que seuls les fichiers sont extraits, et non leurs dossiers parents (de projet).

