İçeriğe atla
supastack
Dokümanlara göz atın
WebNext.js

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /tr/docs/web/storage.md (or send Accept: text/markdown).

Dosya depolama

Nesne depolama sözleşmesi üzerinden çalışma alanı kapsamlı yüklemeler.

Başlangıç seviyesinde izlenecek yol

Önkoşullar: Aşağıdaki iki başlangıç kılavuzunu okuyun, Web yerel kurulumunu tamamlayın ve bu monorepo'yu düzenleyicinizde kökünden açın. Web ayarları apps/web/.env.local'ye aittir; Next.js, .env kökünü okumaz. Varsayılan sahte modda /dashboard, veritabanı olmayan bir demodur; /auth'nin taşınan bir veritabanına ihtiyacı var.

Kısa terimler: Çalışma alanı, bir ekibin ayrı kullanıcıları, verileri ve ayarlarıdır. Sunucu güvenilir arka uçtur; sağlayıcı anahtarlarını tarayıcı ve telefon kodundan uzak tutun. Geçiş, tabloları oluşturan veya güncelleyen sürümlü bir veritabanı değişikliğidir. Yapay zeka modeli yanıt veren motordur; model kataloğu, sunucunun mevcut model kimlikleri ve fiyatlarının listesidir. Sağlayıcı yapay zeka, e-posta veya faturalandırma hizmeti gibi bir dış hizmettir. Yetki, bir çalışma alanının bir özelliği kullanmasına olanak tanıyan bir yetkidir. Web kancası, bir hizmetin başka bir hizmetin URL'sine gönderdiği bir mesajdır.

1. Kimlik bilgisi olmayan bir deneme için STORAGE_PROVIDER=memory'yi saklayın. Bu ödemede görünür bir yükleme kontrolü yoksa kodlama temsilcinizden küçük bir örnek görüntü bağlamadan önce apps/web/app/api/storage/avatar/route.ts, apps/web/app/api/storage/logo/route.ts, apps/web/app/api/storage/organization-logo/route.ts ve eşleşen ayarlar sayfasını incelemesini isteyin.

2. Kalıcılığı kontrol etmek için apps/web/.env.local'de STORAGE_PROVIDER=s3, STORAGE_REGION ve STORAGE_BUCKET'yi ayarlayın, yalnızca sunucu test kimlik bilgilerini yerel olarak ekleyin ve yeniden başlatın.

3. Görüntü depolama alanından yeniden yüklenmelidir. İşlem yeniden başlatıldığında bellek dosyaları kaybolur; S3 hataları için grubu, uç noktayı ve erişim politikasını kontrol edin.

Özel kod için, sağlanan prompts/README.md ile başlayın ve en yakın istemi kopyalayın: Bir uygulama ekranı için prompts/new-app-screen.md veya genel bir sayfa için prompts/new-landing-page.md. Sunucu, veritabanı veya sağlayıcı çalışması için kodlama temsilcinize bu kılavuzun görevini verin ve ondan AGENTS.md, .ai/PROJECT_CONTEXT.md ve eşleşen .ai/ aynalarını okumasını isteyin; burada adı geçen kaynak dosyaların tamamını inceleyin; düzenlemeden önce dosyaları ve kontrolleri listeleyin; çalışma alanı sahipliğini ve yalnızca sunucuya ait sırları koruyun; ve size farkı göstereceğim. İstediğiniz davranışı, giriş ve çıkış alanlarını, izin verilen rolleri, beklenen başarıyı ve hataları ve test hesabını, sağlayıcıyı veya cihazı ona bildirin. Örnek değerleri kullanın; asla gerçek bir sırrı yapıştırmayın.

Depolama arka ucunu seçin

STORAGE_PROVIDER=memory kimlik bilgisi gerektirmeyen varsayılan seçenektir. local, tek sunuculu kurulumlar için nesneleri STORAGE_LOCAL_DIR (varsayılan ./.data/storage, üretimde açıkça belirtilmesi zorunludur) altında diske yazar ve /api/storage/local/[...key] üzerinden HMAC imzalı süreli URL’ler (STORAGE_LOCAL_SIGNING_SECRET, yoksa AUTH_SECRET kullanılır) ile sunar. s3, AWS SDK istemcisini yalın @supastack/storage sözleşmesi üzerinde oluşturmak için apps/web/src/storage-runtime.ts dosyasını kullanır ve varsayılan olarak yol stili URL’lerle Supabase Storage ile MinIO’yu destekler.

STORAGE_PROVIDER=s3
STORAGE_REGION=us-east-1
STORAGE_BUCKET=your-product-bucket
# Set STORAGE_ACCESS_KEY_ID and STORAGE_SECRET_ACCESS_KEY on the server.
# Optional: STORAGE_ENDPOINT, STORAGE_FORCE_PATH_STYLE, STORAGE_PUBLIC_BASE_URL
# Self-hosted single-server disk storage:
# STORAGE_PROVIDER=local
# STORAGE_LOCAL_DIR=./.data/storage
# STORAGE_LOCAL_SIGNING_SECRET=
# Local MinIO Compose overrides: MINIO_ROOT_USER / MINIO_ROOT_PASSWORD

Yükleme sınırlarını yeniden kullanın

Gönderilen rotalar, /api/storage/ kapsamındaki nesneleri, avatarları, profil logolarını ve kuruluş logolarını kapsar. Kimlik/çalışma alanı izinlerini çözerler ve depolamadan önce yükleme şeklini doğrularlar. Rastgele istemci nesne anahtarlarını kabul etmek yerine, seçilen rotanın boyut/tür politikasını inceleyin.

Genel URL'ler yetkilendirme değil sunumdur. Korunan içeriği uygulamanın doğrulanmış okuma sınırının arkasında tutun ve ürününüzün verileri için paket/CDN politikasını yapılandırın.

Gerçek depolama davranışını test edin

İzin verilen/reddedilen yüklemeleri, MIME ve boyut reddini, yabancı çalışma alanı yollarını, eksik nesneleri ve sağlayıcı hatasını test edin. Bellek modu işlemler arasında kalıcı değildir; Yayınlanmadan önce seçilen arka uçta depolamayı ve almayı doğrulayın.

Kurulum ve yapılandırma

STORAGE_PROVIDER bağdaştırıcıyı seçer: testler ve yerel geliştirme için memory, herhangi bir S3 uyumlu kova için s3 (STORAGE_BUCKET, STORAGE_ENDPOINT, STORAGE_ACCESS_KEY_ID, STORAGE_SECRET_ACCESS_KEY, STORAGE_PUBLIC_BASE_URL). Kimlik bilgileri yalnızca sunucuda kalır.

packages/storage, nesne konumlarına karşı putObject/getObject/deleteObject yapan ObjectStorage sözleşmesinin yanı sıra assertWorkspaceObjectKey ve buildWorkspaceObjectKey'i sahiplenir, böylece depolanan her nesne çalışma alanı ve amaç (avatar, dosya, logo) ile ad alanına alınır.

Uploads and reads go through authenticated routes:
  /api/storage/objects
  /api/storage/avatar
  /api/storage/logo
  /api/storage/organization-logo

Uygulama iş akışı

Yüklemeleri kimliği doğrulanmış rota katmanının arkasında tutun: çalışma alanını çözün, içerik tipini ve boyutunu doğrulayın, çalışma alanı kapsamlı anahtarı oluşturun ve bağdaştırıcı üzerinden saklayın. Nesne bilinçli olarak herkese açık değilse okumaları da aynı şekilde sunun.

Avatarlar ve organizasyon logoları kendi doğrulamasına sahip ayrı rotalara sahiptir; keyfi ürün dosyaları bildirilmiş amaçla /objects üzerinden gider.

Doğrulama ve sorun giderme

Anonim yüklemelerin reddedildiğini, bir çalışma alanının diğerinin nesne anahtarlarını okuyamadığını, büyük ya da izin verilmeyen içerik tiplerinin başarısız olduğunu ve silinen nesnenin çözülmeyi bıraktığını doğrulayın. Testlerde memory bağdaştırıcısını kullanın; gerçek kovayı etkinleştirilen smoke yoluyla doğrulayın.

Sık sorulan sorular

14 soru

supastack nedir?

supastack, YZ destekli SaaS ürünleri oluşturmak için modüler bir temeldir. Ortak altyapıyı bir araya getirir, böylece ürüne özgü özelliklere odaklanabilirsiniz.

Web ve mobil destekliyor mu?

Evet. supastack, web ve mobil deneyimler için başlangıç noktası olarak Next.js ve Expo uygulamaları içerir.

Hangi kimlik doğrulama dahil?

Better Auth; e-posta/parola, OTP ve sosyal girişi kapsar. Kişisel çalışma alanları hesapla birlikte sağlanır, böylece ürün kayıtları ilk günden itibaren sınırlı kalır.

YZ'yi nasıl destekliyor?

supastack; yapılandırılabilir çok sağlayıcılı YZ, kullanım takibi, bütçeler ve şifreli kendi-anahtarını-getir desteği içerir.

Abonelikler nasıl ele alınıyor?

Kit üzerine kurulu ürünler için Stripe faturalama, abonelikler ve yetkilendirmeler ücretli erişim temelini oluşturur. Sağlayıcı gizli anahtarları yalnızca sunucuda kalır.

Ürüne özgü kodum nerede durur?

Ürüne özgü özellikler ayrı bir kod tabanında kalırken ürün, supastack'in temel modüllerini yapılandırır ve entegre eder.

supastack fiyatlandırması nasıl çalışır?

Kit, ömür boyu güncellemeli tek seferlik bir satın alımdır: 249 $'a Tek Platform (geçici tanıtım fiyatı — normal fiyat 349 $ üzerinden 100 $ indirim) — Next.js (Web), Expo (iOS ve Android) veya Tauri (macOS ve Windows Masaüstü) seçiminiz — ya da tüm platformları ve tam monorepo'yu içeren 499 $'lık Tüm Platformlar Paketi (geçici tanıtım fiyatı — normal fiyat 599 $ üzerinden 100 $ indirim); ek geliştirici koltuğu başına 75 $. Kit aboneliği yok. Bu sitedeki ödeme, lisans anahtarınızı e-postayla teslim eder ve depo erişimi GitHub davetiyle sağlanır.

Çalışma alanları verilerimi nasıl sınırlar?

Kullanıcıya ait kayıtlar workspaceId ile sınırlanır. Kimlik, yetkilendirmeler, YZ kullanımı, faturalama olayları ve denetim kayıtları kişisel çalışma alanı sınırının içinde kalır.

Arka plan işleri nasıl çalışır?

Trigger.dev açık iş çalışma zamanıdır. JobRunner sözleşmesi yalnızca enqueue, status ve cancel vaat eder — iş akışı semantiği Trigger.dev'e özgü ve açık kalır.

E-posta, tanıtım yazılarından nasıl farklı?

İşlemsel e-posta, tamamlanma bildirimleri gibi ürün iş akışlarını kapsar. Soğuk tanıtım ve kampanyalar, bu kitin e-posta modülünün dışında kalan ürün konularıdır.

Mobil satın almalar nasıl çalışır?

Mobil uygulama RevenueCat ile yerel satın alma ve geri yükleme sunar; erişimi sunucunuz doğrular. Yayınlamadan önce mağaza hesaplarını yapılandırın ve cihaz testlerini tamamlayın. Web faturalandırması ayrı kalır.

YZ sağlayıcı anahtarları nerede durur?

Kendi-anahtarını-getir kimlik bilgileri şifrelidir ve yalnızca sunucuda kalır. Anahtarlar günlüklerden gizlenir; kullanım ve bütçeler çalışma alanı düzeyinde görünür kalır.

Ödeme hangi ödeme yöntemlerini kabul ediyor?

Stripe tarafından barındırılan ödeme sayfası kartları kabul eder; cüzdanlar Stripe hesabında etkinleştirildiğinde Alipay ve WeChat Pay de sunabilir — Çin'deki alıcılar için kullanışlı. Cüzdan yetkilendirmeleri eşzamansız onaylanır; ödeme tamamlanır tamamlanmaz lisans sayfası güncellenir.

Geri ödeme alabilir miyim?

Depoya erişim kazandıktan sonra supastack sonsuza kadar sizin olur, bu nedenle geri ödeme yapılamaz. Ancak içiniz rahat olsun: kendiniz veya müşterileriniz için sınırsız sayıda ürün geliştirip yayınlamak üzere ömür boyu güncellemeler içeren eksiksiz kaynak koduna sahip olursunuz. Yalnızca kodu yeniden satamaz veya depoyu bir başlangıç kiti ya da şablon olarak yeniden dağıtamazsınız.

TR
Tema