S3-migratie
Deze instructies gelden voor v5.x en later. Als je deze handleiding voor een eerdere versie volgt, gebruik dan
sharelatex in plaats van overleaf in padnamen en het voorvoegsel SHARELATEX_ in plaats van OVERLEAF_ voor omgevingsvariabelen. Sla voor v6 en later de verouderde user_files-opdrachten over.We horen graag van je! Als je met ons wilt delen hoeveel bestanden je hebt gemigreerd, wat het totale volume was en hoe lang de migratie duurde, stuur dan een e-mail naar
ayaka-notes@outlook.com .Vereisten
- Een S3-compatibele objectopslag om mee te communiceren, zie #s3-setup voor opties
- Vrije schijfruimte voor het migreren van bestaande gegevens, ongeveer even groot als de huidige omvang op schijf
- Een onderhoudsvenster om de daadwerkelijke migratie uit te voeren
- Een volledige back-up, inclusief de configuratie, zodat je deze kunt herstellen
De benodigde schijfruimte voor de migratie inschatten
We kunnendu gebruiken om het huidige schijfgebruik te berekenen:
De history-mappen hebben al de juiste indeling. Je kunt rechtstreeks uploaden vanuit de via bind-mount gekoppelde bronmap, waarvoor geen extra schijfruimte nodig is.
Migratiestappen
Stap 0: de instantie afsluiten
We moeten ervoor zorgen dat alle gebruikers- en sjabloonbestanden worden gemigreerd. Het is het beste om de instantie af te sluiten om te voorkomen dat nieuw geüploade bestanden worden gemist. Zie onze handleiding voor het maken van een consistente back-up voor de afsluitprocedure.Stap 1: de mapindeling herschrijven
We moeten de mapindeling van projectbestanden herschrijven om ze naar S3 te kunnen uploaden. De mapindeling voor lokale opslag in filestore is<project-id>_<file-id> en de mapindeling in S3 is <project-id>/<file-id>.
Hieronder wordt /srv/overleaf-s3-migration gebruikt om de bestanden in de nieuwe mapindeling op te slaan. Vervang /srv/overleaf-bind-mount door de hostmap die is gekoppeld aan /var/lib/overleaf. Voer de kopieeropdrachten uit op de host met rechten om deze mappen te lezen en te schrijven; de container blijft gestopt.
We kunnen tar gebruiken om de indeling te herschrijven:
Stap 2: de bestanden uploaden
Afhankelijk van je voorkeur kun je de minio mc S3-client of de aws cli gebruiken om de bestanden naar je S3-compatibele objectopslag te uploaden. aws cli- Vervang hier
overleaf-user-files,overleaf-template-files,overleaf-project-blobsenoverleaf-chunksdoor de namen van je S3-buckets. - Vervang ook
/srv/overleaf-bind-mountdoor het lokale pad van de bind-mount voor/var/lib/overleaf. Standaard is dit~/overleaf_databij een deployment met docker-compose.yml en<toolkit-checkout>/data/overleafbij gebruik van de Toolkit.
Stap 3: de instantie starten met S3 als opslag
Voeg alle S3-gerelateerde variabelen toe aan je configuratie, zoals beschreven in de sectie Overzicht van variabelen in de installatiehandleiding voor S3. Behoud de bind-mount voor de datamap: deze kan ook versleutelingssleutels voor Zotero of Mendeley bevatten die niet naar S3 worden gemigreerd.Laat de bind-mount van een scratch-schijf voor tijdelijke bestanden staan.
- binaire bestanden kunnen in de editor worden bekeken
- een PDF met afbeeldingen kan worden gecompileerd
- nieuwe bestanden kunnen worden geüpload
Terugdraaien
Je kunt de migratie netjes terugdraaien door de stappen in omgekeerde volgorde uit te voeren:- Sluit de instantie af
- Spiegel de bestanden terug door bron en bestemming om te wisselen
- Schrijf de nieuwe bestanden terug naar de lokale map met een omgekeerde
transform - Start de instantie opnieuw met de oude configuratie
De eerste transform verwijdert de map op het hoogste niveau. De tweede transform wijzigt de mapindeling naar een platte indeling. De wildcards zorgen ervoor dat alleen bestanden worden uitgepakt en niet hun bovenliggende (project)mappen.

