> 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/fi/yllapito/s3-migration.md).

# S3-siirto

## S3-siirto

{% hint style="info" %}
Nämä ohjeet koskevat versiota v5.x ja sitä uudempia. Jos seuraat tätä opasta aiempaa versiota varten, käytä `sharelatex` sen sijaan että `overleaf` polkunimissä ja `SHARELATEX_` etuliitettä sen sijaan `OVERLEAF_` ympäristömuuttujille.
{% endhint %}

{% hint style="warning" %}
Server Pro -asiakkaat: Ota yhteyttä tukeen ennen kuin siirrät tietosi S3:een.
{% endhint %}

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

Tämä opas opastaa sinut siirrossa levyllä olevasta tallennuksesta S3-yhteensopivaan objektitallennukseen. Se viittaa johdantodokumentin kohtiin [S3:n käyttöönotto](/on-premises/fi/maaritys/overleaf-toolkit/s3.md).

### Vaatimukset

* S3-yhteensopiva objektitallennus, johon voidaan yhdistää, katso [S3](/on-premises/fi/maaritys/overleaf-toolkit/s3.md#s3-setup) vaihtoehtoja
* Vapaata levytilaa olemassa olevien tietojen siirtämiseen, noin nykyisen levyllä olevan koon verran
* Huoltoikkuna 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" %}
Historiahakemistoilla on jo oikea rakenne. Voit ladata suoraan bind-mountatusta lähdekansiosta, mikä ei vaadi ylimääräistä levytilaa.
{% endhint %}

### Siirron vaiheet

#### Vaihe 0: sammuta instanssi

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

Katso ohjeemme johdonmukaisen varmuuskopion tekemisestä sammutusmenettelyä varten.

#### Vaihe 1: kirjoita hakemistorakenne uudelleen

Meidän on kirjoitettava projektitiedostojen hakemistorakenne 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` käytetään tiedostojen tallentamiseen uudessa hakemistorakenteessa.

Voimme hyödyntää `tar` asettelun uudelleenkirjoittamiseen:

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

Mieltymystesi mukaan voit käyttää minio mc S3 -asiakasta tai aws cli:tä tiedostojen lataamiseen S3-yhteensopivaan objektitallennukseesi.

**aws cli**

{% hint style="info" %}

* Tässä sinun tulee korvata `overleaf-user-files`, `overleaf-template-files`, `overleaf-project-blobs` ja `overleaf-chunks` S3-ämpäreidesi nimillä.
* Korvaa myös `/srv/overleaf-bind-mount` paikallisella polulla, joka kuuluu `/var/lib/overleaf` bind-mountiin. Oletuksena tämä on `~/overleaf_data` docker-compose.yml-käyttöönotossa 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"; 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 osoittaen S3:een

Lisää kaikki S3:een liittyvät muuttujat asetukseesi, kuten on kuvattu [Muuttujien yleiskatsaus](/on-premises/fi/maaritys/overleaf-toolkit/s3.md#overview-of-variables) osiossa [S3](https://docs.overleaf.com/on-premises/configuration/overleaf-toolkit/s3) S3:n asennusoppaassa.

Docker Compose -käyttöönottoissa voit myös poistaa datahakemiston bind-mountin volumes-osasta.

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

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

* voi esikatsella binaaritiedostoja editorissa
* voi kääntää PDF:n kuvien kanssa
* voi ladata uusia tiedostoja

### Palauttaminen

Voit palauttaa 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 paikalliseen hakemistoon käyttämällä käänteistä `muunnosta`
4. Käynnistä instanssi uudelleen vanhalla asetuksella

{% 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 muunnos poistaa ylimmän tason kansion. Toinen muunnos muuttaa hakemistorakenteen litteäksi. Jokerimerkit varmistavat, että puretaan vain tiedostot, ei niiden yläpuolisia (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://overleaf-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.
