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

# S3

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

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

Instansseille, joissa on alle 1000 paikkaa, suosittelemme käyttämään paikallista levytilaa ja säännöllisiä [johdonmukaisia varmuuskopioita](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup).

Suuremmille instansseille, joissa on yli 1000 paikkaa ja jotka saavuttavat paikallisen tallennuksensa rajat (koko tai läpimenokyky), suosittelemme S3-yhteensopivan objektitallennuksen taustaratkaisua 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 Overleaf CE/Server Pro ajetaan AWS:ssä
* [MINIO](https://min.io/), itse ylläpidetty
* [Ceph](https://ceph.io/en/), itse ylläpidetty
* Myös muilla hosting-palveluntarjoajilla on jonkinlainen hallinnoitu S3-yhteensopiva objektitallennus, ja saatat haluta käyttää näitä oman ratkaisun ajamisen sijaan, jos käytät Overleaf CE/Server Prota jo tällaisen palveluntarjoajan ympäristössä.

## Viiveeseen liittyvät näkökohdat valittaessa S3-yhteensopivaa objektitallennusta

Server CE/Server Pro -instanssin ja S3-yhteensopivan objektitallennuksesi välinen viive vaikuttaa merkittävästi siihen aikaan, joka kuluu migraation suorittamiseen. Viive vaikuttaa myös tiedostojen lataamisen suorituskykyyn Server CE:ssä/Server Prossa, ja hitailla tiedostojen latauksilla voi olla suuri vaikutus myös PDF-kääntöaikoihin. Suosittelemme minimoimaan maantieteellisen etäisyyden Server CE/Server Pro -instanssisi ja S3-yhteensopivan objektitallennuksen välillä. Hallinnoidussa ympäristössä tämä tarkoittaisi säilön provisiointia samalle alueelle, ja paikallisessa ratkaisussa molempien ajamista samalla kampuksella.

## S3:n käyttöönotto

Tarvitsemme neljä "bucketia" ja kaksi rajoitettua käyttäjätiliä.

{% hint style="warning" %}
Bucketien pitäisi **ei** olla julkisesti käytettävissä
{% 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>Bucket</td><td>Käyttö</td><td>Palvelu</td><td>Aiemmin kohdassa <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 historiablokit</td><td>historian ja vain luku -tiedostovarasto</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>historian osat</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 bucketejä 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>Tiedostovaraston palvelun rajoitetun käyttäjän käyttöavain/käyttäjätunnus.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Tiedostovaraston palvelun 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 käyttöavain/käyttäjätunnus.</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:n ja Server Pro:n tarvitsee vain pieni joukko käyttöoikeuksia jokaisessa bucketissa:

* luo objekti
* hae objekti
* poista objekti
* luettele bucket

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

#### AWS S3:ää käytettäessä

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

# Projektitiedostojen bucketin nimi
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Mallitiedostojen bucketin nimi
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Tiedostovaraston käyttäjän avain
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Tiedostovaraston käyttäjän salaisuus
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Bucketin alue, jonka valitsit bucketteja luodessasi.
OVERLEAF_FILESTORE_S3_REGION=""

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

# Projektin historiablokkien bucketin nimi
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Historian osien bucketin nimi
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Historian käyttäjän avain
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Historian käyttäjän salaisuus
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Bucketin alue, jonka valitsit bucketteja luodessasi.
OVERLEAF_HISTORY_S3_REGION=""
```

#### Kun käytät itse ylläpidettyä vaihtoehtoa

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

# Projektitiedostojen bucketin nimi
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Mallitiedostojen bucketin nimi
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Tiedostovaraston käyttäjän avain
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Tiedostovaraston käyttäjän salaisuus
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

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

# Buckettien polkupohjainen osoittaminen. Todennäköisesti tämä pitää asettaa arvoon "true".
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Bucketin alue. Todennäköisesti tätä ei tarvitse määrittää.
OVERLEAF_FILESTORE_S3_REGION=""

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

# Projektin historiablokkien bucketin nimi
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Historian osien bucketin nimi
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Historian käyttäjän avain
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Historian käyttäjän salaisuus
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

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

# Buckettien polkupohjainen osoittaminen. Todennäköisesti tämä pitää asettaa arvoon "true".
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Bucketin alue. Todennäköisesti tätä ei tarvitse määrittää.
OVERLEAF_HISTORY_S3_REGION=""
```

### MINIO:n käyttöönotto

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

Noudata [virallista dokumentaatiota](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) saadaksesi kopion `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 bucketin nimet ja tunnistetiedot vastaavasti.

# tiedostovaraston bucketit, 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 bucketit, 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://ayakaleaf-pro.ayaka.space/on-premises/fi/konfiguraatio/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.
