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

# S3

{% hint style="info" %}
Bu belge, Server CE ve Overleaf Pro'da S3 kurulumunu kapsar. Bir [ayrı kılavuz](/on-premises/tr/bakim/s3-migration.md) mevcut verilerin S3 uyumlu depolamaya nasıl taşınacağına dair bulunabilir.
{% endhint %}

## Veri depolama için S3 kullanmayı ne zaman değerlendirmeli

1000'den az koltuğa sahip örnekler için, düzenli [tutarlı yedeklemelerle yerel disk depolamayı kullanmanızı öneririz](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup).

1000'den fazla koltuğa sahip ve yerel depolama sınırlarına (boyut veya aktarım hızı) ulaşan daha büyük örnekler için, NFS gibi diğer ağ tabanlı depolama çözümleri yerine S3 uyumlu bir nesne depolama arka ucu kullanmanızı öneririz.

## S3 uyumlu nesne depolama seçenekleri

İşte S3 uyumlu nesne depolama için en popüler seçenekler:

* [AWS S3](https://aws.amazon.com/s3/), yönetilen; Overleaf CE/Server Pro'yu AWS üzerinde çalıştırıyorsanız AWS S3'ü seçmenizi öneririz
* [MINIO](https://min.io/), kendi barındırılan
* [Ceph](https://ceph.io/en/), kendi barındırılan
* Diğer barındırma sağlayıcılarında da bir tür yönetilen S3 uyumlu nesne depolama vardır; zaten böyle bir sağlayıcıda Overleaf CE/Server Pro çalıştırıyorsanız kendi kurulumunuzu çalıştırmak yerine bunları kullanmak isteyebilirsiniz.

## Bir S3 uyumlu nesne depolama seçerken gecikme hususları

Server CE/Server Pro örneği ile S3 uyumlu nesne depolamanız arasındaki gecikme, taşıma işleminin tamamlanma süresine büyük katkıda bulunur. Gecikme, Server CE/Server Pro'daki dosya yükleme performansını da etkiler ve yavaş dosya indirmeleri PDF derleme süreleri üzerinde de büyük bir etkiye sahip olabilir. Server CE/Server Pro örneğiniz ile S3 uyumlu nesne depolama arasındaki coğrafi mesafeyi en aza indirmenizi öneririz. Yönetilen bir ortamda bu, aynı bölgede bir bucket sağlamak anlamına gelir; kurumsal bir çözümde ise ikisini aynı kampüste çalıştırmak anlamına gelir.

## S3 kurulumu

Dört "bucket" ve iki kısıtlı kullanıcı hesabına ihtiyacımız var.

{% hint style="warning" %}
Bucket'lar **yapmamalısınız** genel erişime açık olmalı
{% 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>Kullanım</td><td>Hizmet</td><td>Daha önce <code>/var/lib/overleaf/data</code></td></tr><tr><td><code>overleaf-user-files</code></td><td>proje kullanıcı dosyaları</td><td>filestore</td><td><code>user_files</code></td></tr><tr><td><code>overleaf-template-files</code></td><td>şablon dosyaları</td><td>filestore</td><td><code>template_files</code></td></tr><tr><td><code>overleaf-project-blobs</code></td><td>proje geçmişi blob'ları</td><td>geçmiş ve salt okunur dosya deposu</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>geçmiş parçaları</td><td>history</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

Farklı bir ad seçmek isteyebilir/gereksinim duyabilirsiniz; tüm komutlarda özel bucket'ları kullandığınızdan emin olun.

Aşağıdakiler gerçek kimlik bilgileri için yer tutucular kullanacaktır:

<table><thead><tr><th width="431">Ortam değişkeni</th><th>Açıklama</th></tr></thead><tbody><tr><td><code>OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID</code></td><td>Dosya deposu hizmetinin kısıtlı kullanıcısının erişim anahtarı/kullanıcı adı.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Dosya deposu hizmetinin kısıtlı kullanıcısının gizli anahtarı/parolası.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Geçmiş hizmetinin kısıtlı kullanıcısının erişim anahtarı/kullanıcı adı.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Geçmiş hizmetinin kısıtlı kullanıcısının gizli anahtarı/parolası.</td></tr></tbody></table>

Server CE ve Server Pro'nun her bucket için yalnızca küçük bir izin kümesine ihtiyacı vardır:

* nesne oluştur
* nesne al
* nesne sil
* bucket'ı listele

### Erişim Politikaları

Dosya deposu kullanıcısı için bir politika şu şekilde görünebilir:

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

İşte geçmiş kullanıcısı için bir politika şu şekilde görünebilir:

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

### Değişkenlere genel bakış

#### AWS S3 kullanırken

```bash
# Dosya deposu için S3 arka ucunu etkinleştir
OVERLEAF_FILESTORE_BACKEND=s3

# Proje dosyaları için bucket adı
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Şablon dosyaları için bucket adı
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Dosya deposu kullanıcısı için anahtar
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Dosya deposu kullanıcısı için gizli anahtar
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Bucket'ları oluştururken seçtiğiniz bucket bölgesi.
OVERLEAF_FILESTORE_S3_REGION=""

# Geçmiş için S3 arka ucunu etkinleştir
OVERLEAF_HISTORY_BACKEND=s3

# Proje geçmişi blob'ları için bucket adı
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Geçmiş parçaları için bucket adı
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Geçmiş kullanıcısı için anahtar
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Geçmiş kullanıcısı için gizli anahtar
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Bucket'ları oluştururken seçtiğiniz bucket bölgesi.
OVERLEAF_HISTORY_S3_REGION=""
```

#### Kendi barındırılan bir seçenek kullanırken

```bash
# Dosya deposu için S3 arka ucunu etkinleştir
OVERLEAF_FILESTORE_BACKEND=s3

# Proje dosyaları için bucket adı
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Şablon dosyaları için bucket adı
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Dosya deposu kullanıcısı için anahtar
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Dosya deposu kullanıcısı için gizli anahtar
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# S3 sağlayıcı uç noktası
OVERLEAF_FILESTORE_S3_ENDPOINT=http://10.10.10.10:9000

# Bucket'ların path-style adreslemesi. Büyük olasılıkla bunu "true" olarak ayarlamanız gerekir.
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Bucket bölgesi. Büyük olasılıkla bunu yapılandırmanız gerekmez.
OVERLEAF_FILESTORE_S3_REGION=""

# Geçmiş için S3 arka ucunu etkinleştir
OVERLEAF_HISTORY_BACKEND=s3

# Proje geçmişi blob'ları için bucket adı
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Geçmiş parçaları için bucket adı
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Geçmiş kullanıcısı için anahtar
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Geçmiş kullanıcısı için gizli anahtar
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# S3 sağlayıcı uç noktası
OVERLEAF_HISTORY_S3_ENDPOINT=http://10.10.10.10:9000

# Bucket'ların path-style adreslemesi. Büyük olasılıkla bunu "true" olarak ayarlamanız gerekir.
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Bucket bölgesi. Büyük olasılıkla bunu yapılandırmanız gerekmez.
OVERLEAF_HISTORY_S3_REGION=""
```

### MINIO kurulumu

{% hint style="info" %}
`MINIO_ROOT_USER` ve `MINIO_ROOT_PASSWORD` MINIO örneğinin kök kimlik bilgileridir.
{% endhint %}

Lütfen [resmi belgelere](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) uygun olarak bir kopyasını edinmek için `mc`.

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

# Önceki bölümdeki politikaların içeriğini
# ilgili json dosyaları policy-filestore.json ve policy-history.json içine koyun.

# Hatırlatma: Bucket adlarını ve kimlik bilgilerini buna göre değiştirin.

# dosya deposu bucket'ları, kullanıcı ve politika
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

# geçmiş bucket'ları, kullanıcı ve politika
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/tr/yapilandirma/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.
