> 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/maaritys/overleaf-toolkit/s3.md).

# S3

{% hint style="info" %}
Tämä dokumentti käsittelee S3:n käyttöönottoa Server CE:ssä ja Overleaf Prossa. A [erillinen opas](/on-premises/fi/yllapito/s3-migration.md) löytyy olemassa olevan datan siirtämisestä S3-yhteensopivaan tallennukseen.
{% endhint %}

## Milloin kannattaa harkita S3:n käyttämistä datan tallennukseen

Alle 1000 istumapaikan tapauksissa suosittelemme paikallisen levy-tallennuksen käyttöä säännöllisillä [johdonmukaisilla varmuuskopioilla](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup).

Suuremmissa, yli 1000 istumapaikan tapauksissa, joissa paikallisen tallennuksen rajat tulevat vastaan (koko tai läpäisykyky), suosittelemme käyttämään S3-yhteensopivaa objektitallennusta muiden verkkopohjaisten tallennusratkaisujen, kuten NFS:n, sijaan.

## S3-yhteensopivat objektitallennusvaihtoehdot

Tässä ovat suosituimmat S3-yhteensopivan objektitallennuksen vaihtoehdot:

* [AWS S3](https://aws.amazon.com/s3/), hallinnoitu, suosittelemme valitsemaan AWS S3:n, kun käytät Overleaf CE/Server Prota AWS:ssä
* [MINIO](https://min.io/), itse isännöity
* [Ceph](https://ceph.io/en/), itse isännöity
* Myös muilla hosting-palveluntarjoajilla on jonkinlainen hallinnoitu S3-yhteensopiva objektitallennus, joten saatat haluta käyttää niitä oman ratkaisun ajamisen sijaan, jos käytät jo Overleaf CE/Server Prota tällaisen palveluntarjoajan ympäristössä.

## Viiveeseen liittyvät huomioitavat asiat S3-yhteensopivaa objektitallennusta valittaessa

Server CE/Server Pro -instanssin ja S3-yhteensopivan objektitallennuksen välinen viive vaikuttaa suuresti siihen aikaan, joka kuluu siirron valmistumiseen. Viive vaikuttaa myös tiedostojen latausnopeuteen Server CE/Server Prossa, ja hidas tiedostojen lataus voi vaikuttaa merkittävästi myös PDF:n kääntöaikoihin. Suosittelemme minimoimaan maantieteellisen etäisyyden Server CE/Server Pro -instanssin ja S3-yhteensopivan objektitallennuksen välillä. Hallinnoidussa ympäristössä tämä tarkoittaisi säiliön luomista samalle alueelle, ja paikallisessa ratkaisussa näiden kahden ajamista samalla kampuksella.

## S3-asetukset

Tarvitsemme neljä "säiliötä" ja kaksi rajoitettua käyttäjätiliä.

{% hint style="warning" %}
Säiliöiden tulisi **ei** olla julkisesti saavutettavissa
{% endhint %}

<table data-header-hidden><thead><tr><th width="279"></th><th width="152"></th><th width="97"></th><th></th></tr></thead><tbody><tr><td>Säiliö</td><td>Käyttö</td><td>Palvelu</td><td>Aiemmin <code>/var/lib/overleaf/data</code></td></tr><tr><td><code>overleaf-user-files</code></td><td>projektin käyttäjätiedostot</td><td>filestore</td><td><code>user_files</code></td></tr><tr><td><code>overleaf-template-files</code></td><td>mallitiedostot</td><td>filestore</td><td><code>template_files</code></td></tr><tr><td><code>overleaf-project-blobs</code></td><td>projektin historiatietojen blobit</td><td>historia ja vain luku -tiedostovarasto</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>historian palat</td><td>history</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

Saatat haluta/tarvita valita eri nimen; varmista, että käytät mukautettuja säiliöitä kaikissa komennoissa.

Seuraavassa käytetään paikkamerkkejä varsinaisille tunnistetiedoille:

<table><thead><tr><th width="431">Ympäristömuuttuja</th><th>Kuvaus</th></tr></thead><tbody><tr><td><code>OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID</code></td><td>Tiedostovarastopalvelun rajoitetun käyttäjän access key/käyttäjänimi.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Tiedostovarastopalvelun rajoitetun käyttäjän salainen avain/salasana.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Historian palvelun rajoitetun käyttäjän access key/käyttäjänimi.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Historian palvelun rajoitetun käyttäjän salainen avain/salasana.</td></tr></tbody></table>

Server CE ja Server Pro tarvitsevat vain pienen joukon oikeuksia kullekin säiliölle:

* luo objekti
* hae objekti
* poista objekti
* listaa säiliö

### Käyttöoikeuspolitiikat

Tältä tiedostovaraston käyttäjän politiikka voisi näyttää:

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-user-files"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-user-files/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
      ],
      "Resource": "arn:aws:s3:::overleaf-project-blobs/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-template-files"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-template-files/*"
    }
  ]
}
```

Tältä historian käyttäjän politiikka voisi näyttää:

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-project-blobs"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-project-blobs/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-chunks"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-chunks/*"
    }
  ]
}
```

### Muuttujien yleiskatsaus

#### Kun käytetään AWS S3:ta

```bash
# Ota S3-taustaosa käyttöön tiedostovarastolle
OVERLEAF_FILESTORE_BACKEND=s3

# Säiliön nimi projektitiedostoille
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Säiliön nimi mallitiedostoille
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Avain tiedostovaraston käyttäjälle
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Salaisuus tiedostovaraston käyttäjälle
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Säiliön alue, jonka valitsit säiliöitä luodessa.
OVERLEAF_FILESTORE_S3_REGION=""

# Ota S3-taustaosa käyttöön historialle
OVERLEAF_HISTORY_BACKEND=s3

# Säiliön nimi projektihistorian blobeille
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Säiliön nimi historian paloille
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Avain historian käyttäjälle
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Salaisuus historian käyttäjälle
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Säiliön alue, jonka valitsit säiliöitä luodessa.
OVERLEAF_HISTORY_S3_REGION=""
```

#### Kun käytetään itse isännöityä vaihtoehtoa

```bash
# Ota S3-taustaosa käyttöön tiedostovarastolle
OVERLEAF_FILESTORE_BACKEND=s3

# Säiliön nimi projektitiedostoille
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Säiliön nimi mallitiedostoille
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Avain tiedostovaraston käyttäjälle
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Salaisuus tiedostovaraston käyttäjälle
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# S3-palveluntarjoajan päätepiste
OVERLEAF_FILESTORE_S3_ENDPOINT=http://10.10.10.10:9000

# Säiliöiden polkupohjainen osoittaminen. Todennäköisesti sinun pitää asettaa tämä arvoon "true".
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Säiliön alue. Todennäköisesti sinun ei tarvitse määrittää tätä.
OVERLEAF_FILESTORE_S3_REGION=""

# Ota S3-taustaosa käyttöön historialle
OVERLEAF_HISTORY_BACKEND=s3

# Säiliön nimi projektihistorian blobeille
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Säiliön nimi historian paloille
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Avain historian käyttäjälle
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Salaisuus historian käyttäjälle
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# S3-palveluntarjoajan päätepiste
OVERLEAF_HISTORY_S3_ENDPOINT=http://10.10.10.10:9000

# Säiliöiden polkupohjainen osoittaminen. Todennäköisesti sinun pitää asettaa tämä arvoon "true".
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Säiliön alue. Todennäköisesti sinun ei tarvitse määrittää tätä.
OVERLEAF_HISTORY_S3_REGION=""
```

### MINIO-asennus

{% hint style="info" %}
`MINIO_ROOT_USER` ja `MINIO_ROOT_PASSWORD` ovat MINIO-instanssin pääkäyttäjätunnukset.
{% endhint %}

Ole hyvä ja seuraa [virallista dokumentaatiota](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) saadaksesi kopion työkalusta `mc`.

```bash
mc alias set s3 http://10.10.10.10:9000 MINIO_ROOT_USER MINIO_ROOT_PASSWORD

# Laita edellisen osion politiikoiden sisältö
# vastaaviin json-tiedostoihin policy-filestore.json ja policy-history.json.

# Muistutus: vaihda säiliöiden nimet ja tunnistetiedot vastaavasti.

# tiedostovaraston säiliöt, käyttäjä ja politiikka
mc mb --ignore-existing s3/overleaf-user-files
mc mb --ignore-existing s3/overleaf-template-files
mc admin user add s3 \\
  OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID \\
  OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY
mc admin policy create s3 overleaf-filestore policy-filestore.json
mc admin policy attach s3 overleaf-filestore \\
  --user=OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID

# historian säiliöt, käyttäjä ja politiikka
mc mb --ignore-existing s3/overleaf-project-blobs
mc mb --ignore-existing s3/overleaf-chunks
mc admin user add s3 \\
  OVERLEAF_HISTORY_S3_ACCESS_KEY_ID \\
  OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY
mc admin policy create s3 overleaf-history policy-history.json
mc admin policy attach s3 overleaf-history \\
  --user=OVERLEAF_HISTORY_S3_ACCESS_KEY_ID
```


---

# 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/maaritys/overleaf-toolkit/s3.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.
