> ## 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>
  Denne vejledning gælder for v5.x og senere. Hvis du følger vejledningen for en tidligere version, skal du bruge `sharelatex` i stedet for `overleaf` i stinavne og præfikset `SHARELATEX_` i stedet for `OVERLEAF_` for miljøvariabler. For v6 og senere skal du springe de ældre `user_files`-kommandoer over.
</Info>

<Check>
  <strong>Vi vil meget gerne høre fra dig!</strong> Hvis du vil dele med os, hvor mange filer du migrerede, deres samlede omfang, og hvor lang tid migreringen tog, så send en e-mail til [`ayaka-notes@outlook.com`](mailto:support@overleaf.com) .
</Check>

Denne vejledning fører dig gennem migreringen fra lagring på disk til et S3-kompatibelt objektlager. Den henviser til afsnit i introduktionsdokumentet om [S3-opsætning](/da/on-premises/configuration/overleaf-toolkit/s3).

### Krav

* Et S3-kompatibelt objektlager at kommunikere med, se [#s3-setup](/da/on-premises/configuration/overleaf-toolkit/s3#s3-setup "mention") for muligheder
* Ledig diskplads til migrering af eksisterende data, omtrent svarende til den nuværende størrelse på disk
* Et vedligeholdelsesvindue til selve migreringen
* En fuld sikkerhedskopi, inklusive konfigurationen, så der kan gendannes fra den

### Estimer den diskplads, der kræves til migreringen

Vi kan bruge `du` til at beregne det nuværende diskforbrug:

```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
```

Hvis du ikke har tilstrækkelig diskplads til rådighed på den nuværende server, kan du prøve at tilslutte endnu en disk til serveren.

<Info>
  Historikmapperne har allerede det korrekte layout. Du kan uploade direkte fra den bind-mountede kildemappe, hvilket ikke kræver yderligere diskplads.
</Info>

### Migreringstrin

#### Trin 0: Luk instansen ned

Vi skal sikre, at alle bruger-/skabelonfiler bliver migreret. Det er bedst at lukke instansen ned for at undgå at gå glip af nyligt uploadede filer.

Se vores vejledning i at udføre en konsistent sikkerhedskopiering for nedlukningsproceduren.

#### Trin 1: Omskriv mappelayoutet

Vi skal omskrive mappelayoutet for projektfiler for at kunne uploade dem til S3. Mappelayoutet for lokal lagring i filestore er `<project-id>_<file-id>`, og mappelayoutet i S3 er `<project-id>/<file-id>`.

I det følgende bruges `/srv/overleaf-s3-migration` til at gemme filerne i det nye mappelayout. Erstat `/srv/overleaf-bind-mount` med den mappe på værten, der er monteret på `/var/lib/overleaf`. Kør kopieringskommandoerne på værten med tilladelse til at læse og skrive i disse mapper; containeren forbliver stoppet.

Vi kan bruge `tar` til at omskrive layoutet:

```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
```

#### Trin 2: Upload filerne

Afhængigt af dine præferencer kan du bruge S3-klienten minio mc eller aws cli til at uploade filerne til dit S3-kompatible objektlager.

**aws cli**

<Info>
  * Her skal du erstatte `overleaf-user-files`, `overleaf-template-files`, `overleaf-project-blobs` og `overleaf-chunks` med navnene på dine S3-buckets.
  * Erstat også `/srv/overleaf-bind-mount` med den lokale sti til bind-mountet for `/var/lib/overleaf`. Som standard er dette `~/overleaf_data` i en installation med docker-compose.yml og `<toolkit-checkout>/data/overleaf`, når du bruger 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 bruger serveraliaset "s3" her; du har muligvis valgt et andet navn.

```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
```

#### Trin 3: Start instansen med S3 som lager

Tilføj alle S3-relaterede variabler til din konfiguration som beskrevet i afsnittet [Oversigt over variabler](/da/on-premises/configuration/overleaf-toolkit/s3#overview-of-variables) i opsætningsvejledningen til [S3](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/s3).

Behold bind-mountet for datamappen: det kan også indeholde krypteringsnøgler til Zotero eller Mendeley, som ikke migreres til S3.

<Check>
  Behold venligst [bind-mountet af en scratch-disk til midlertidige filer](/da/on-premises/support/troubleshooting#running-overleaf-with-an-nfs-filesystem).
</Check>

Du kan nu starte instansen og validere migreringen:

* binære filer kan forhåndsvises i editoren
* en PDF med billeder kan kompileres
* nye filer kan uploades

### Tilbagerulning

Du kan rulle migreringen tilbage på en kontrolleret måde ved at udføre trinnene i omvendt rækkefølge:

1. Luk instansen ned
2. Spejl filerne tilbage ved at bytte om på rækkefølgen af kilde/destination
3. Skriv nye filer tilbage til den lokale mappe ved hjælp af en omvendt `transform`
4. Genstart instansen med den gamle konfiguration

```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ørste transform fjerner mappen på øverste niveau. Den anden transform ændrer mappelayoutet til et fladt layout. Wildcards sikrer, at kun filer udpakkes, ikke deres overordnede (projekt)mapper.
</Info>


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