> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/on-premises/fi/yllapito/s3-migration.md).

# S3-migraatio

## S3-siirto

{% hint style="info" %}
Nämä ohjeet koskevat versiota 5.x ja uudempia. Jos seuraat tätä opasta aikaisemman version osalta, käytä `sharelatex` eikä `overleaf` polkunimissä ja `SHARELATEX_` etuliite sen sijaan `OVERLEAF_` ympäristömuuttujia varten.
{% endhint %}

{% hint style="warning" %}
Server Pro -asiakkaat: ottakaa yhteyttä tukeen ennen kuin siirrätte datanne S3:een.
{% endhint %}

{% hint style="success" %}
**Haluaisimme kuulla sinusta!** Jos haluat kertoa meille, kuinka monta tiedostoa siirsitte, niiden kokonaismäärän ja kuinka kauan siirto kesti, lähetä sähköpostia [`support@overleaf.com`](mailto:support@overleaf.com) .
{% endhint %}

Tämä opas ohjaa sinut siirtymään levyltä tallennuksesta S3-yhteensopivaan objektivarastoon. Se viittaa johdantoasiakirjan osioihin kohdassa [S3:n käyttöönotto](/on-premises/fi/konfiguraatio/overleaf-toolkit/s3.md).

### Vaatimukset

* S3-yhteensopiva objektivarasto, johon yhdistää, katso [S3](/on-premises/fi/konfiguraatio/overleaf-toolkit/s3.md#s3-setup) vaihtoehdoista
* Vapaata levytilaa olemassa olevan datan siirtämiseen, noin nykyisen levykoon verran
* Huoltokatko varsinaisen siirron tekemistä varten
* Täysi varmuuskopio, mukaan lukien asetukset, jotta siitä voidaan palauttaa

### Arvioi siirtoon tarvittava levytila

Voimme käyttää `du` nykyisen levytilankäytön laskemiseen:

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

Jos nykyisellä palvelimella ei ole riittävästi levytilaa, yritä liittää palvelimeen toinen levy.

{% hint style="info" %}
Historiahakemistot ovat jo oikeassa rakenteessa. Voit ladata suoraan bind-mountatusta lähdekansiosta, mikä ei vaadi lisälevytilaa.
{% endhint %}

### Siirtovaiheet

#### Vaihe 0: sammuta instanssi

Varmistamme, että kaikki käyttäjä-/mallitiedostot siirtyvät. On parasta sammuttaa instanssi, jotta uusia ladattuja tiedostoja ei jää väliin.

Katso ohjeemme yhdenmukaisen varmuuskopion tekemisestä sammutusmenettelyä varten.

#### Vaihe 1: kirjoita hakemistorakenne uudelleen

Projektitiedostojen hakemistorakenne on kirjoitettava uudelleen, jotta ne voidaan ladata S3:een. Paikallisen tallennuksen hakemistorakenne filestoressa on `<project-id>_<file-id>` ja S3:n hakemistorakenne on `<project-id>/<file-id>`.

Jäljempänä `/srv/overleaf-s3-migration` sitä käytetään tiedostojen tallentamiseen uuteen hakemistorakenteeseen.

Voimme hyödyntää `tar` rakenneuudistukseen:

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

#### Vaihe 2: lataa tiedostot

Mieltymyksesi mukaan voit käyttää tiedostojen lataamiseen S3-yhteensopivaan objektivarastoon joko minio mc -S3-asiakasohjelmaa tai aws cli:tä.

**aws cli**

{% hint style="info" %}

* Tässä sinun pitäisi korvata `overleaf-user-files`, `overleaf-template-files`, `overleaf-project-blobs` ja `overleaf-chunks` S3-buckettiesi nimillä.
* Korvaa myös `/srv/overleaf-bind-mount` paikallisella polulla `/var/lib/overleaf` bind-mountin. Oletusarvoisesti se on `~/overleaf_data` docker-compose.yml-julkaisussa ja `<toolkit-checkout>/data/overleaf` kun käytät Toolkitia.
  {% 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**

Käytämme tässä palvelimen aliasta "s3", mutta olet ehkä valinnut toisen nimen.

{% 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 %}

#### Vaihe 3: käynnistä instanssi osoittamaan S3:een

Lisää kaikki S3:een liittyvät muuttujat asetuksiisi, kuten on kuvattu [Muuttujien yleiskatsaus](/on-premises/fi/konfiguraatio/overleaf-toolkit/s3.md#overview-of-variables) osiossa [S3](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/s3) käyttöönotto-oppaassa.

Docker Compose -asennuksissa voit myös poistaa datahakemiston bind-mountin volumes-osiosta.

{% hint style="success" %}
Pidä kuitenkin [tilapäistiedostojen scratch-levyn bind-mount](/on-premises/fi/tuki/troubleshooting.md#running-overleaf-with-an-nfs-filesystem) paikoillaan.
{% endhint %}

Voit nyt käynnistää instanssin ja varmistaa siirron:

* voi esikatsella binääritiedostoja editorissa
* voi kääntää PDF:n kuvilla
* voi ladata uusia tiedostoja

### Palauttaminen

Voit perua siirron hallitusti kääntämällä vaiheet päinvastaisiksi:

1. Sammuta instanssi
2. Peilaa tiedostot takaisin vaihtamalla lähteen ja kohteen järjestys
3. Kirjoita uudet tiedostot takaisin paikallishakemistoon käyttäen käänteistä `muunnosta`
4. Käynnistä instanssi uudelleen vanhalla kokoonpanolla

{% code overflow="wrap" %}

```shell
# Kun käytät aws cli:tä
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

# Kun käytät minio mc:tä
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
# Kirjoita tiedostot paikalliseen Server CE/Server Pro -asennukseen
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" %}
Ensimmäinen transformaatio poistaa ylimmän tason kansion. Toinen transformaatio muuttaa hakemistorakenteen tasaiseksi. Jokerimerkit varmistavat, että puretaan vain tiedostot, ei niiden ylempiä (projekti)kansioita.
{% 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://ayakaleaf-pro.ayaka.space/on-premises/fi/yllapito/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.
