Genel Bakış
Azalt şu depolama seçeneklerini destekler:- AWS S3 (varsayılan)
- S3 uyumlu servisler (MinIO, özel bulut S3, vb.)
Ortam Değişkenleri
Dosya Depolama için Zorunlu
| Değişken | Açıklama |
|---|---|
S3_BUCKET_NAME | S3 bucket adı |
S3_ACCESS_KEY_ID | AWS erişim anahtarı veya S3 uyumlu servis kimlik bilgileri |
S3_SECRET_ACCESS_KEY | AWS gizli anahtar veya S3 uyumlu servis kimlik bilgileri |
İsteğe Bağlı Yapılandırma
| Değişken | Varsayılan | Açıklama |
|---|---|---|
S3_REGION | eu-central-1 | AWS bölgesi veya S3 uyumlu servis bölgesi |
S3_ENDPOINT | (yok) | S3 uyumlu servisler için özel endpoint URL’i |
S3_PUBLIC_ENDPOINT | (yok) | Presigned URL’ler için tarayıcı erişimli URL |
S3_FORCE_PATH_STYLE | false | MinIO ve çoğu S3 uyumlu servis için true yapın |
Yapılandırma Senaryoları
AWS S3 (Standart)
Standart AWS S3 için sadece temel kimlik bilgileri gereklidir:S3_ENDPOINT veya S3_PUBLIC_ENDPOINT gerekmez.
MinIO (Tarayıcı Erişimli)
MinIO örneğiniz tarayıcılardan doğrudan erişilebiliyorsa (örneğin, genel IP veya domain üzerinden):S3_ENDPOINT tarayıcı erişimli olduğu için S3_PUBLIC_ENDPOINT gerekmez.
MinIO (Docker/Kubernetes Dahili)
MinIO sadece dahili olarak erişilebiliyorsa (örneğin, Docker ağı veya Kubernetes cluster’ı):Özel Bulut S3
Özel bulutlardaki dahili S3 uyumlu depolama için (örneğin, banka altyapısı):S3_PUBLIC_ENDPOINT’i atlayabilirsiniz.
Presigned URL’ler Nasıl Çalışır
Bir kullanıcı dosya yükleyip indirdiğinde, Azalt tarayıcının doğrudan kullandığı bir presigned URL oluşturur.Endpoint Çözümleme Sırası
Presigned URL’ler için (tarayıcı dosya erişimi):S3_PUBLIC_ENDPOINT(ayarlıysa)S3_ENDPOINT(ayarlıysa)- AWS SDK varsayılanları (standart AWS S3 için)
S3_ENDPOINT(ayarlıysa)- AWS SDK varsayılanları
Helm Values (Kubernetes)
values.yaml içinde:
Sorun Giderme
Hata: S3 storage is not configured
Hata: S3 storage is not configured
Üç zorunlu değişkenin de ayarlandığından emin olun:
S3_BUCKET_NAMES3_ACCESS_KEY_IDS3_SECRET_ACCESS_KEY
Uyarı: S3_ENDPOINT is set but S3_PUBLIC_ENDPOINT is not
Uyarı: S3_ENDPOINT is set but S3_PUBLIC_ENDPOINT is not
Bu uyarı,
S3_ENDPOINT yapılandırıldığında ancak S3_PUBLIC_ENDPOINT yapılandırılmadığında görünür. Uygulama presigned URL’ler için S3_ENDPOINT’i kullanacaktır.İşlem gerekli ise: S3_ENDPOINT dahili bir URL’dir (Docker/Kubernetes servis adı) ve tarayıcılar erişemez. S3_PUBLIC_ENDPOINT’i tarayıcı erişimli URL olarak ayarlayın.İşlem gerekli değil ise: S3_ENDPOINT zaten tarayıcı erişimliyse (VPN’deki kullanıcılar, genel endpoint, vb.).Dosya yüklemeleri/indirmeleri imza hatalarıyla başarısız oluyor
Dosya yüklemeleri/indirmeleri imza hatalarıyla başarısız oluyor
Bu genellikle imzalama için kullanılan URL ile tarayıcıların gerçekte eriştiği URL arasında uyumsuzluk olduğu anlamına gelir.
S3_PUBLIC_ENDPOINT’in tarayıcıların S3’e ulaşabileceği yeri gösterdiğini doğrulayın- Herhangi bir reverse proxy’nin yolu doğru koruduğunu kontrol edin
S3_FORCE_PATH_STYLE’ın S3 servis gereksinimlerinizle eşleştiğinden emin olun
Dosya yüklemelerinde CORS hataları
Dosya yüklemelerinde CORS hataları
S3 bucket’ınızın uygulama domain’inizden gelen isteklere izin veren uygun CORS yapılandırmasına sahip olduğundan emin olun.

