> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/on-premises-cs/udrzba/s3-migration.md).

# Migrace na S3

## Migrace na S3

{% hint style="info" %}
Tyto pokyny jsou pro verzi v5.x a novější. Pokud se tímto průvodcem řídíte pro starší verzi, použijte prosím `sharelatex` namísto `Overleaf` v názvech cest a `SHARELATEX_` předponu místo `OVERLEAF_` pro proměnné prostředí.
{% endhint %}

{% hint style="warning" %}
Zákazníci Server Pro: Před migrací dat do S3 se prosím obraťte na podporu.
{% endhint %}

{% hint style="success" %}
**Rádi bychom od vás slyšeli!** Pokud byste se s námi chtěli podělit o to, kolik souborů jste migrovali, jaký byl jejich celkový objem a jak dlouho migrace trvala, napište na [`support@overleaf.com`](mailto:support@overleaf.com) .
{% endhint %}

Tento průvodce vás provede migrací z úložiště na disku na objektové úložiště kompatibilní se S3. Odkazuje na části úvodního dokumentu o [Nastavení S3](/on-premises/on-premises-cs/konfigurace/overleaf-toolkit/s3.md).

### Požadavky

* Objektové úložiště kompatibilní se S3, ke kterému se lze připojit, viz [S3](/on-premises/on-premises-cs/konfigurace/overleaf-toolkit/s3.md#s3-setup) pro možnosti
* Volné místo na disku pro migraci stávajících dat, přibližně odpovídající aktuální velikosti na disku
* Plánovaná údržbová pauza pro samotnou migraci
* Úplná záloha, včetně konfigurace, pro možnost obnovení z ní

### Odhad potřebné velikosti disku pro migraci

Můžeme použít `du` pro výpočet aktuálního využití disku:

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

Pokud na aktuálním serveru nemáte k dispozici dostatek volného místa na disku, zkuste k serveru připojit další disk.

{% hint style="info" %}
Adresáře historie už mají správné rozložení. Můžete nahrávat přímo z připojené zdrojové složky, což nevyžaduje žádné další místo na disku.
{% endhint %}

### Kroky migrace

#### Krok 0 vypněte instanci

Musíme se ujistit, že všechny uživatelské/sablonové soubory budou migrovány. Nejlepší je instanci vypnout, aby se předešlo vynechání nově nahraných souborů.

Postup vypnutí najdete v našem průvodci provedením konzistentní zálohy.

#### Krok 1 přepište rozložení adresářů

Musíme přepsat rozložení adresářů projektových souborů, abychom je mohli nahrát do S3. Rozložení adresářů pro místní úložiště ve filestore je `<project-id>_<file-id>` a rozložení adresářů v S3 je `<project-id>/<file-id>`.

V následujícím textu je `/srv/overleaf-s3-migration` použito pro ukládání souborů v novém rozložení adresářů.

Můžeme využít `tar` pro přepsání rozložení:

```shell
mkdir -p /srv/overleaf-s3-migration/user_files \\
         /srv/overleaf-s3-migration/template_files
docker exec sharelatex \\
  tar --create --directory /var/lib/overleaf/data/user_files . \\
| tar --extract --directory /srv/overleaf-s3-migration/user_files \\
  --transform=sx_x/x
docker exec sharelatex \\
  tar --create --directory /var/lib/overleaf/data/template_files . \\
| tar --extract --directory /srv/overleaf-s3-migration/template_files \\
  --transform=sx_x/xg
```

#### Krok 2 nahrajte soubory

Podle vašich preferencí můžete pro nahrávání souborů do objektového úložiště kompatibilního se S3 použít klienta minio mc S3 nebo aws cli.

**aws cli**

{% hint style="info" %}

* Zde byste měli nahradit `overleaf-user-files`, `overleaf-template-files`, `overleaf-project-blobs` a `overleaf-chunks` názvy vašich bucketů S3.
* Také nahraďte `/srv/overleaf-bind-mount` místní cestou `/var/lib/overleaf` připojeného svazku. Ve výchozím nastavení je to `~/overleaf_data` v nasazení docker-compose.yml a `<toolkit-checkout>/data/overleaf` při použití Toolkitu.
  {% endhint %}

{% code overflow="wrap" %}

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

{% endcode %}

**minio mc**

Zde používáme serverový alias „s3“, možná jste si zvolili jiný název.

{% code overflow="wrap" %}

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

{% endcode %}

#### Krok 3 spusťte instanci směřující na S3

Přidejte všechny proměnné související se S3 do své konfigurace, jak je podrobně popsáno v části [Přehled proměnných](/on-premises/on-premises-cs/konfigurace/overleaf-toolkit/s3.md#overview-of-variables) v [S3](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/s3) průvodce nastavením.

U nasazení pomocí Docker Compose můžete také odstranit připojení svazku pro datový adresář z části volumes.

{% hint style="success" %}
Prosím ponechte [připojení dočasného disku pro efemérní soubory](/on-premises/on-premises-cs/podpora/troubleshooting.md#running-overleaf-with-an-nfs-filesystem) na místě.
{% endhint %}

Nyní můžete instanci spustit a ověřit migraci:

* může zobrazit binární soubory v editoru
* může zkompilovat PDF s obrázky
* může nahrávat nové soubory

### Vrácení zpět

Migraci můžete vrátit zpět bez problémů obrácením kroků:

1. Vypněte instanci
2. Zrcadlete soubory zpět obrácením pořadí zdroje/cíle
3. Zapište nové soubory zpět do místního adresáře pomocí inverzního `transformu`
4. Spusťte instanci znovu se starou konfigurací

{% code overflow="wrap" %}

```shell
# Při použití 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

# Při použití 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
```

{% endcode %}

```shell
# Zápis souborů do místního Server CE/Server Pro
tar --create --directory /srv/overleaf-s3-migration/user_files . \\
| docker exec --interactive sharelatex \\
    tar \\
      --extract \\
      --keep-old-files \\
      --directory /var/lib/overleaf/data/user_files \\
      --transform=sx./xx --transform=sx/x_x \\
      --wildcards '*/*/*'

tar --create --directory /srv/overleaf-s3-migration/template_files . \\
| docker exec --interactive sharelatex \\
    tar \\
      --extract \\
      --keep-old-files \\
      --directory /var/lib/overleaf/data/template_files \\
      --transform=sx./xx --transform=sx/x_xg \\
      --wildcards '*/*/*/*/pdf-converted-cache/*' \\
      --wildcards '*/*/*/*/pdf' \\
      --wildcards '*/*/*/*/zip'
```

{% hint style="info" %}
První transformace odstraní složku nejvyšší úrovně. Druhá transformace změní rozložení adresářů na ploché. Zástupné znaky zajišťují, že se rozbalí pouze soubory, nikoli jejich nadřazené (projektové) složky.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/on-premises-cs/udrzba/s3-migration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
