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

# S3

{% hint style="info" %}
Detta dokument beskriver konfigurationen av S3 i Server CE och Overleaf Pro. En [separat guide](/on-premises/sv/underhall/s3-migration.md) finns för att migrera befintlig data till S3-kompatibel lagring.
{% endhint %}

## När man bör överväga att använda S3 för datalagring

För instanser med färre än 1000 platser rekommenderar vi lokal disklagring med regelbundna [konsistenta säkerhetskopior](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup).

För större instanser med fler än 1000 platser som når gränserna för sin lokala lagring (storlek eller genomströmning) rekommenderar vi att använda en S3-kompatibel objektlagringsbackend framför andra nätverksbaserade lagringslösningar som NFS.

## S3-kompatibla objektlagringsalternativ

Här är de mest populära alternativen för S3-kompatibel objektlagring:

* [AWS S3](https://aws.amazon.com/s3/), hanterad, vi rekommenderar att välja AWS S3 när du kör Overleaf CE/Server Pro på AWS
* [MINIO](https://min.io/), egenhostad
* [Ceph](https://ceph.io/en/), egenhostad
* Andra hostingleverantörer har också någon form av hanterad S3-kompatibel objektlagring; du kanske vill använda dessa i stället för att köra din egen när du redan kör Overleaf CE/Server Pro hos en sådan leverantör.

## Latensöverväganden vid val av S3-kompatibel objektlagring

Latensen mellan Server CE/Server Pro-instansen och din S3-kompatibla objektlagring bidrar i hög grad till den tid det tar att slutföra migreringen. Latensen påverkar också prestandan för filuppladdning i Server CE/Server Pro, och långsamma filnedladdningar kan även ha stor påverkan på tiderna för PDF-kompilering. Vi rekommenderar att minimera det geografiska avståndet mellan din Server CE/Server Pro-instans och den S3-kompatibla objektlagringen. I en hanterad miljö skulle detta innebära att provisionera en bucket i samma region, och för en lokal lösning att köra båda på samma campus.

## S3-konfiguration

Vi behöver fyra "buckets" och två begränsade användarkonton.

{% hint style="warning" %}
Buckets ska **inte** vara publikt åtkomliga
{% 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>Användning</td><td>Tjänst</td><td>Tidigare i <code>/var/lib/overleaf/data</code></td></tr><tr><td><code>overleaf-user-files</code></td><td>projektanvändarfiler</td><td>filestore</td><td><code>user_files</code></td></tr><tr><td><code>overleaf-template-files</code></td><td>mallfiler</td><td>filestore</td><td><code>template_files</code></td></tr><tr><td><code>overleaf-project-blobs</code></td><td>projektets historikblobbar</td><td>historik och skrivskyddat filarkiv</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>historikdelar</td><td>history</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

Du kanske vill behöva välja ett annat namn; se till att använda de anpassade bucketsen i alla kommandon.

Följande använder platshållare för faktiska autentiseringsuppgifter:

<table><thead><tr><th width="431">Miljövariabel</th><th>Beskrivning</th></tr></thead><tbody><tr><td><code>OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID</code></td><td>Åtkomstnyckeln/användarnamnet för den begränsade användaren av filarkivstjänsten.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Hemlighetsnyckeln/lösenordet för den begränsade användaren av filarkivstjänsten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Åtkomstnyckeln/användarnamnet för den begränsade användaren av historiktjänsten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Hemlighetsnyckeln/lösenordet för den begränsade användaren av historiktjänsten.</td></tr></tbody></table>

Server CE och Server Pro behöver bara en liten uppsättning behörigheter för varje bucket:

* skapa objekt
* hämta objekt
* ta bort objekt
* lista bucket

### Åtkomstpolicyer

Så här kan en policy för filarkivanvändaren se ut:

```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/*"
    }
  ]
}
```

Så här kan en policy för historikanvändaren se ut:

```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/*"
    }
  ]
}
```

### Översikt över variabler

#### När AWS S3 används

```bash
# Aktivera S3-backend för filarkivet
OVERLEAF_FILESTORE_BACKEND=s3

# Bucketnamn för projektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Bucketnamn för mallfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nyckel för filarkivanvändaren
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemlighet för filarkivanvändaren
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Bucketregionen du valde när du skapade bucketsen.
OVERLEAF_FILESTORE_S3_REGION=""

# Aktivera S3-backend för historik
OVERLEAF_HISTORY_BACKEND=s3

# Bucketnamn för projektets historikblobbar
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Bucketnamn för historikdelar
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nyckel för historikanvändaren
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemlighet för historikanvändaren
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Bucketregionen du valde när du skapade bucketsen.
OVERLEAF_HISTORY_S3_REGION=""
```

#### När du använder ett egenhostat alternativ

```bash
# Aktivera S3-backend för filarkivet
OVERLEAF_FILESTORE_BACKEND=s3

# Bucketnamn för projektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Bucketnamn för mallfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nyckel för filarkivanvändaren
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemlighet för filarkivanvändaren
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# S3-leverantörens slutpunkt
OVERLEAF_FILESTORE_S3_ENDPOINT=http://10.10.10.10:9000

# Sökvägsbaserad adressering av buckets. Du behöver sannolikt sätta detta till "true".
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Bucketregion. Du behöver sannolikt inte konfigurera detta.
OVERLEAF_FILESTORE_S3_REGION=""

# Aktivera S3-backend för historik
OVERLEAF_HISTORY_BACKEND=s3

# Bucketnamn för projektets historikblobbar
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Bucketnamn för historikdelar
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nyckel för historikanvändaren
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemlighet för historikanvändaren
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# S3-leverantörens slutpunkt
OVERLEAF_HISTORY_S3_ENDPOINT=http://10.10.10.10:9000

# Sökvägsbaserad adressering av buckets. Du behöver sannolikt sätta detta till "true".
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Bucketregion. Du behöver sannolikt inte konfigurera detta.
OVERLEAF_HISTORY_S3_REGION=""
```

### MINIO-konfiguration

{% hint style="info" %}
`MINIO_ROOT_USER` och `MINIO_ROOT_PASSWORD` är rotuppgifterna för MINIO-instansen.
{% endhint %}

Följ [den officiella dokumentationen](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) för att hämta en kopia av `mc`.

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

# Lägg innehållet i policyerna från föregående avsnitt i
# respektive JSON-fil policy-filestore.json och policy-history.json.

# Påminnelse: Ersätt bucketnamnen och autentiseringsuppgifterna därefter.

# bucketar, användare och policy för filarkivet
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

# history-bucketar, användare och policy
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/sv/konfiguration/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.
