> 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/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 om migrering av befintliga data till S3-kompatibelt lagringsutrymme.
{% endhint %}

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

För instanser med färre än 1000 säten rekommenderar vi att använda lokal disklagring med regelbundna [konsekventa 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 säten som når gränserna för sin lokala lagring (storlek eller genomströmning) rekommenderar vi att använda ett S3-kompatibelt objektlagringssystem framför andra nätverksbaserade lagringslösningar som NFS.

## S3-kompatibla alternativ för objektlagring

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

* [AWS S3](https://aws.amazon.com/s3/), hanterad, vi föreslår att du väljer 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 hosting-leverantörer har också någon form av hanterad S3-kompatibel objektlagring, och du kanske vill använda dessa istä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 när man väljer en 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å filuppladdningsprestandan i Server CE/Server Pro, och långsamma filnedladdningar kan också ha stor påverkan på PDF-kompileringstider. Vi föreslår att du minimerar 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 de två på samma campus.

## S3-konfiguration

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

{% hint style="warning" %}
Buckets bör **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>blobbar för projekthistorik</td><td>historik och skrivskyddat filarkiv</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>historikbitar</td><td>history</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

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

Följande kommer att använda 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 filarkivtjänstens begränsade användare.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Hemlig nyckel/lösenord för filarkivtjänstens begränsade användare.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Åtkomstnyckeln/användarnamnet för historiktjänstens begränsade användare.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Hemlig nyckel/lösenord för historiktjänstens begränsade användare.</td></tr></tbody></table>

Server CE och Server Pro behöver bara ett litet antal behörigheter för varje bucket:

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

### Åtkomstpolicys

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 du använder AWS S3

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

# Hemlig nyckel för filarkivanvändaren
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Den bucketregion du valde när du skapade bucketerna.
OVERLEAF_FILESTORE_S3_REGION=""

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

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

# Bucketnamn för historikbitar
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

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

# Hemlig nyckel för historikanvändaren
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Den bucketregion du valde när du skapade bucketerna.
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=...

# Hemlig nyckel för filarkivanvändaren
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

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

# Bucketadress med sökväg. Troligen behöver du ställa in detta till "true".
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Bucketregion. Troligen behöver du inte konfigurera detta.
OVERLEAF_FILESTORE_S3_REGION=""

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

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

# Bucketnamn för historikbitar
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

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

# Hemlig nyckel för historikanvändaren
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

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

# Bucketadress med sökväg. Troligen behöver du ställa in detta till "true".
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Bucketregion. Troligen behöver du inte konfigurera detta.
OVERLEAF_HISTORY_S3_REGION=""
```

### MINIO-konfiguration

{% hint style="info" %}
`MINIO_ROOT_USER` och `MINIO_ROOT_PASSWORD` är de rotnycklar som gäller för MINIO-instansen.
{% endhint %}

Vänligen följ [den officiella dokumentationen](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) för att få 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 från policys i föregående avsnitt i
# respektive json-fil policy-filestore.json och policy-history.json.

# Påminnelse: Byt ut bucketnamnen och autentiseringsuppgifterna därefter.

# filarkivets buckets, användare och policy
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

# historikens buckets, 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://overleaf-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.
