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

# S3

{% hint style="info" %}
Αυτό το έγγραφο καλύπτει τη ρύθμιση του S3 στο Server CE και το Overleaf Pro. Ένα [ξεχωριστός οδηγός](/on-premises/el/syntirisi/s3-migration.md) μπορεί να βρεθεί στον οδηγό μετεγκατάστασης των υπαρχόντων δεδομένων σε αποθήκευση συμβατή με S3.
{% endhint %}

## Πότε να εξετάσετε τη χρήση του S3 για αποθήκευση δεδομένων

Για εγκαταστάσεις με λιγότερες από 1000 θέσεις, συνιστούμε τη χρήση τοπικού δίσκου με τακτικά [συνεπή αντίγραφα ασφαλείας](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup).

Για μεγαλύτερες εγκαταστάσεις με περισσότερες από 1000 θέσεις που φτάνουν τα όρια του τοπικού αποθηκευτικού τους χώρου (μέγεθος ή ρυθμοαπόδοση), συνιστούμε τη χρήση ενός backend αποθήκευσης αντικειμένων συμβατού με S3 αντί άλλων λύσεων αποθήκευσης βασισμένων στο δίκτυο όπως το NFS.

## Επιλογές αποθήκευσης αντικειμένων συμβατές με S3

Ακολουθούν οι πιο δημοφιλείς επιλογές για αποθήκευση αντικειμένων συμβατή με S3:

* [AWS S3](https://aws.amazon.com/s3/), διαχειριζόμενο, προτείνουμε να επιλέξετε AWS S3 όταν εκτελείτε το Overleaf CE/Server Pro στο AWS
* [MINIO](https://min.io/), αυτο-φιλοξενούμενο
* [Ceph](https://ceph.io/en/), αυτο-φιλοξενούμενο
* Άλλοι πάροχοι φιλοξενίας διαθέτουν επίσης κάποιο είδος διαχειριζόμενης αποθήκευσης αντικειμένων συμβατής με S3· ίσως θέλετε να χρησιμοποιήσετε αυτές αντί να τρέξετε τη δική σας, όταν ήδη εκτελείτε το Overleaf CE/Server Pro σε έναν τέτοιο πάροχο.

## Σκέψεις για την καθυστέρηση κατά την επιλογή αποθήκευσης αντικειμένων συμβατής με S3

Η καθυστέρηση μεταξύ της παρουσίας Server CE/Server Pro και της αποθήκευσης αντικειμένων συμβατής με S3 αποτελεί σημαντικό παράγοντα στον χρόνο που απαιτείται για την ολοκλήρωση της μετεγκατάστασης. Η καθυστέρηση επηρεάζει επίσης την απόδοση μεταφόρτωσης αρχείων στο Server CE/Server Pro, και οι αργές λήψεις αρχείων μπορούν επίσης να έχουν μεγάλο αντίκτυπο στους χρόνους μεταγλώττισης PDF. Προτείνουμε να ελαχιστοποιήσετε τη γεωγραφική απόσταση μεταξύ της παρουσίας Server CE/Server Pro και της αποθήκευσης αντικειμένων συμβατής με S3. Σε ένα διαχειριζόμενο περιβάλλον, αυτό θα σήμαινε την παροχή ενός bucket στην ίδια περιοχή, και για μια εσωτερική λύση, τη λειτουργία των δύο στον ίδιο χώρο.

## Ρύθμιση S3

Χρειαζόμαστε τέσσερα "buckets" και δύο περιορισμένους λογαριασμούς χρηστών.

{% hint style="warning" %}
Τα buckets θα πρέπει **μην** να είναι δημόσια προσβάσιμα
{% 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>Χρήση</td><td>Υπηρεσία</td><td>Προηγουμένως στο <code>/var/lib/overleaf/data</code></td></tr><tr><td><code>overleaf-user-files</code></td><td>αρχεία χρηστών έργου</td><td>filestore</td><td><code>user_files</code></td></tr><tr><td><code>overleaf-template-files</code></td><td>αρχεία προτύπων</td><td>filestore</td><td><code>template_files</code></td></tr><tr><td><code>overleaf-project-blobs</code></td><td>δυαδικά αντικείμενα ιστορικού έργου</td><td>ιστορικό και αποθήκη αρχείων μόνο για ανάγνωση</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>τμήματα ιστορικού</td><td>ιστορικό</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

Ίσως θέλετε/χρειάζεται να επιλέξετε διαφορετικό όνομα· βεβαιωθείτε ότι χρησιμοποιείτε τα προσαρμοσμένα buckets σε όλες τις εντολές.

Τα παρακάτω θα χρησιμοποιήσουν σύμβολα κράτησης θέσης για τα πραγματικά διαπιστευτήρια:

<table><thead><tr><th width="431">Μεταβλητή περιβάλλοντος</th><th>Περιγραφή</th></tr></thead><tbody><tr><td><code>OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID</code></td><td>Το κλειδί πρόσβασης/όνομα χρήστη του περιορισμένου χρήστη της υπηρεσίας filestore.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Το μυστικό κλειδί/κωδικός πρόσβασης του περιορισμένου χρήστη της υπηρεσίας filestore.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Το κλειδί πρόσβασης/όνομα χρήστη του περιορισμένου χρήστη της υπηρεσίας ιστορικού.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Το μυστικό κλειδί/κωδικός πρόσβασης του περιορισμένου χρήστη της υπηρεσίας ιστορικού.</td></tr></tbody></table>

Το Server CE και το Server Pro χρειάζονται μόνο ένα μικρό σύνολο δικαιωμάτων σε κάθε bucket:

* δημιουργία αντικειμένου
* λήψη αντικειμένου
* διαγραφή αντικειμένου
* λίστα bucket

### Πολιτικές πρόσβασης

Έτσι θα μπορούσε να μοιάζει μια πολιτική για τον χρήστη του filestore:

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

Έτσι θα μπορούσε να μοιάζει μια πολιτική για τον χρήστη του ιστορικού:

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

### Επισκόπηση μεταβλητών

#### Όταν χρησιμοποιείτε AWS S3

```bash
# Ενεργοποίηση του backend S3 για το filestore
OVERLEAF_FILESTORE_BACKEND=s3

# Όνομα bucket για τα αρχεία έργου
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Όνομα bucket για τα αρχεία προτύπων
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Κλειδί για τον χρήστη του filestore
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Μυστικό για τον χρήστη του filestore
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Η περιοχή του bucket που επιλέξατε κατά τη δημιουργία των buckets.
OVERLEAF_FILESTORE_S3_REGION=""

# Ενεργοποίηση του backend S3 για το ιστορικό
OVERLEAF_HISTORY_BACKEND=s3

# Όνομα bucket για τα δυαδικά αντικείμενα ιστορικού έργου
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Όνομα bucket για τα τμήματα ιστορικού
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Κλειδί για τον χρήστη του ιστορικού
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Μυστικό για τον χρήστη του ιστορικού
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Η περιοχή του bucket που επιλέξατε κατά τη δημιουργία των buckets.
OVERLEAF_HISTORY_S3_REGION=""
```

#### Όταν χρησιμοποιείτε μια αυτο-φιλοξενούμενη επιλογή

```bash
# Ενεργοποίηση του backend S3 για το filestore
OVERLEAF_FILESTORE_BACKEND=s3

# Όνομα bucket για τα αρχεία έργου
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Όνομα bucket για τα αρχεία προτύπων
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Κλειδί για τον χρήστη του filestore
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Μυστικό για τον χρήστη του filestore
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Τελικό σημείο παρόχου S3
OVERLEAF_FILESTORE_S3_ENDPOINT=http://10.10.10.10:9000

# Διευθυνσιοδότηση bucket με στυλ διαδρομής. Πιθανότατα χρειάζεται να το ορίσετε σε "true".
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Περιοχή του bucket. Πιθανότατα δεν χρειάζεται να το ρυθμίσετε αυτό.
OVERLEAF_FILESTORE_S3_REGION=""

# Ενεργοποίηση του backend S3 για το ιστορικό
OVERLEAF_HISTORY_BACKEND=s3

# Όνομα bucket για τα δυαδικά αντικείμενα ιστορικού έργου
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Όνομα bucket για τα τμήματα ιστορικού
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Κλειδί για τον χρήστη του ιστορικού
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Μυστικό για τον χρήστη του ιστορικού
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Τελικό σημείο παρόχου S3
OVERLEAF_HISTORY_S3_ENDPOINT=http://10.10.10.10:9000

# Διευθυνσιοδότηση bucket με στυλ διαδρομής. Πιθανότατα χρειάζεται να το ορίσετε σε "true".
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Περιοχή του bucket. Πιθανότατα δεν χρειάζεται να το ρυθμίσετε αυτό.
OVERLEAF_HISTORY_S3_REGION=""
```

### Ρύθμιση MINIO

{% hint style="info" %}
`MINIO_ROOT_USER` και `MINIO_ROOT_PASSWORD` είναι τα διαπιστευτήρια root της παρουσίας MINIO.
{% endhint %}

Παρακαλούμε ακολουθήστε την [επίσημη τεκμηρίωση](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) για να αποκτήσετε ένα αντίγραφο του `mc`.

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

# Τοποθετήστε τα περιεχόμενα των πολιτικών από την προηγούμενη ενότητα στο
# αντίστοιχο αρχείο json policy-filestore.json και policy-history.json.

# Υπενθύμιση: Αντικαταστήστε τα ονόματα των buckets και τα διαπιστευτήρια αναλόγως.

# buckets του filestore, χρήστης και πολιτική
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

# buckets του ιστορικού, χρήστης και πολιτική
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/el/rythmisi/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.
