> ## Documentation Index
> Fetch the complete documentation index at: https://ayakaleaf-pro.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# S3-migrering

## S3-migrering

<Info>
  Dessa instruktioner gäller v5.x och senare. Om du följer den här guiden för en tidigare version, använd `sharelatex` i stället för `overleaf` i sökvägsnamn och prefixet `SHARELATEX_` i stället för `OVERLEAF_` för miljövariabler. För v6 och senare hoppar du över de äldre `user_files`-kommandona.
</Info>

<Check>
  <strong>Vi vill gärna höra från dig!</strong> Om du vill berätta för oss hur många filer du migrerade, deras totala storlek och hur lång tid migreringen tog, mejla [`ayaka-notes@outlook.com`](mailto:support@overleaf.com).
</Check>

Den här guiden tar dig igenom migreringen från lagring på disk till en S3-kompatibel objektlagring. Den hänvisar till avsnitt i introduktionsdokumentet om [S3-konfiguration](/sv/on-premises/configuration/overleaf-toolkit/s3).

### Krav

* En S3-kompatibel objektlagring att kommunicera med, se [#s3-setup](/sv/on-premises/configuration/overleaf-toolkit/s3#s3-setup "mention") för alternativ
* Ledigt diskutrymme för att migrera befintlig data, ungefär lika mycket som den nuvarande storleken på disk
* Ett underhållsfönster för själva migreringen
* En fullständig säkerhetskopia, inklusive konfigurationen, så att du kan återställa från den

### Uppskatta det diskutrymme som behövs för migreringen

Vi kan använda `du` för att beräkna den aktuella diskanvändningen:

```shell theme={null}
docker exec sharelatex \
  du --human-readable --max-depth=0 /var/lib/overleaf/data/user_files

docker exec sharelatex \
  du --human-readable --max-depth=0 /var/lib/overleaf/data/template_files
```

Om du inte har tillräckligt med diskutrymme på den aktuella servern kan du försöka ansluta ytterligare en disk till servern.

<Info>
  Historikkatalogerna har redan rätt struktur. Du kan ladda upp direkt från den bind-monterade källmappen, vilket inte kräver något extra diskutrymme.
</Info>

### Migreringssteg

#### Steg 0: stäng av instansen

Vi måste säkerställa att alla användar- och mallfiler migreras. Det är bäst att stänga av instansen för att undvika att nyligen uppladdade filer missas.

Se vår guide om att göra en konsekvent säkerhetskopia för avstängningsproceduren.

#### Steg 1: skriv om katalogstrukturen

Vi måste skriva om katalogstrukturen för projektfiler för att kunna ladda upp dem till S3. Katalogstrukturen för lokal lagring i filestore är `<project-id>_<file-id>` och katalogstrukturen i S3 är `<project-id>/<file-id>`.

I det följande används `/srv/overleaf-s3-migration` för att lagra filerna i den nya katalogstrukturen. Ersätt `/srv/overleaf-bind-mount` med den katalog på värddatorn som är monterad på `/var/lib/overleaf`. Kör kopieringskommandona på värddatorn med behörighet att läsa och skriva i dessa kataloger; containern förblir stoppad.

Vi kan använda `tar` för att skriva om strukturen:

```shell theme={null}
mkdir -p /srv/overleaf-s3-migration/user_files \
         /srv/overleaf-s3-migration/template_files
tar --create --directory /srv/overleaf-bind-mount/data/user_files . \
| tar --extract --directory /srv/overleaf-s3-migration/user_files \
  --transform=sx_x/x
tar --create --directory /srv/overleaf-bind-mount/data/template_files . \
| tar --extract --directory /srv/overleaf-s3-migration/template_files \
  --transform=sx_x/xg
```

#### Steg 2: ladda upp filerna

Beroende på vad du föredrar kan du använda S3-klienten minio mc eller aws cli för att ladda upp filerna till din S3-kompatibla objektlagring.

**aws cli**

<Info>
  * Här ska du ersätta `overleaf-user-files`, `overleaf-template-files`, `overleaf-project-blobs` och `overleaf-chunks` med namnen på dina S3-buckets.
  * Ersätt även `/srv/overleaf-bind-mount` med den lokala sökvägen till bind-monteringen för `/var/lib/overleaf`. Som standard är detta `~/overleaf_data` i en docker-compose.yml-driftsättning och `<toolkit-checkout>/data/overleaf` när du använder Toolkit.
</Info>

```shell wrap theme={null}
aws s3 sync /srv/overleaf-s3-migration/user_files s3://overleaf-user-files
aws s3 sync /srv/overleaf-s3-migration/template_files s3://overleaf-template-files

aws s3 sync /srv/overleaf-bind-mount/data/history/overleaf-project-blobs s3://overleaf-project-blobs
aws s3 sync /srv/overleaf-bind-mount/data/history/overleaf-chunks s3://overleaf-chunks
```

**minio mc**

Vi använder serveraliaset "s3" här, du kan ha valt ett annat namn.

```shell wrap theme={null}
mc mirror /srv/overleaf-s3-migration/user_files s3/overleaf-user-files
mc mirror /srv/overleaf-s3-migration/template_files s3/overleaf-template-files

mc mirror /srv/overleaf-bind-mount/data/history/overleaf-project-blobs s3/overleaf-project-blobs
mc mirror /srv/overleaf-bind-mount/data/history/overleaf-chunks s3/overleaf-chunks
```

#### Steg 3: starta instansen med S3

Lägg till alla S3-relaterade variabler i din konfiguration, enligt avsnittet [Översikt över variabler](/sv/on-premises/configuration/overleaf-toolkit/s3#overview-of-variables) i konfigurationsguiden för [S3](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/s3).

Behåll bind-monteringen av datakatalogen: den kan också innehålla krypteringsnycklar för Zotero eller Mendeley som inte migreras till S3.

<Check>
  Behåll [bind-monteringen av en arbetsdisk för tillfälliga filer](/sv/on-premises/support/troubleshooting#running-overleaf-with-an-nfs-filesystem).
</Check>

Du kan nu starta instansen och validera migreringen:

* binära filer kan förhandsgranskas i redigeraren
* en PDF med bilder kan kompileras
* nya filer kan laddas upp

### Återställa

Du kan återställa migreringen på ett kontrollerat sätt genom att utföra stegen i omvänd ordning:

1. Stäng av instansen
2. Spegla tillbaka filerna genom att byta plats på källa och mål
3. Skriv tillbaka nya filer till den lokala katalogen med en omvänd `transform`
4. Starta om instansen med den gamla konfigurationen

```shell wrap theme={null}
# When using aws cli
aws s3 sync s3://overleaf-user-files /srv/overleaf-s3-migration/user_files
aws s3 sync s3://overleaf-template-files /srv/overleaf-s3-migration/template_files
aws s3 sync s3://overleaf-project-blobs /srv/overleaf-bind-mount/data/history/overleaf-project-blobs
aws s3 sync s3://overleaf-chunks /srv/overleaf-bind-mount/data/history/overleaf-chunks

# When using minio mc
mc mirror s3/overleaf-user-files /srv/overleaf-s3-migration/user_files
mc mirror s3/overleaf-template-files /srv/overleaf-s3-migration/template_files
mc mirror s3/overleaf-project-blobs /srv/overleaf-bind-mount/data/history/overleaf-project-blobs
mc mirror s3/overleaf-chunks /srv/overleaf-bind-mount/data/history/overleaf-chunks
```

```shell theme={null}
# Write files into local Server CE/Server Pro
tar --create --directory /srv/overleaf-s3-migration/user_files . \
| tar \
      --extract \
      --keep-old-files \
      --directory /srv/overleaf-bind-mount/data/user_files \
      --transform=sx./xx --transform=sx/x_x \
      --wildcards '*/*/*'

tar --create --directory /srv/overleaf-s3-migration/template_files . \
| tar \
      --extract \
      --keep-old-files \
      --directory /srv/overleaf-bind-mount/data/template_files \
      --transform=sx./xx --transform=sx/x_xg \
      --wildcards '*/*/*/*/pdf-converted-cache/*' \
      --wildcards '*/*/*/*/pdf' \
      --wildcards '*/*/*/*/zip'
```

<Info>
  Den första transformationen tar bort mappen på översta nivån. Den andra transformationen ändrar katalogstrukturen till en platt struktur. Jokertecknen säkerställer att endast filer extraheras, inte deras överordnade (projekt)mappar.
</Info>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.