10. Multi-Provider Cloud Storage
Ringkasan
Aplikasi dilengkapi dengan adapter pengunggahan berkas terpadu yang mendukung 3 penyedia penyimpanan cloud populer — Cloudflare R2 (Tanpa Biaya Egress), Supabase Object Storage, dan Cloudinary Media CDN — serta Database BLOB Fallback.
Cara Kerja
Administrator menentukan penyedia aktif menggunakan opsi activeStorageProvider. Aplikasi mengalirkan berkas ke penyedia yang dipilih secara dinamis.
mermaid
graph TD
UploadReq["Permintaan Unggah Berkas"] --> CheckActive["Cek activeStorageProvider"]
CheckActive -->|cloudflare| R2["Cloudflare R2 S3 API"]
CheckActive -->|supabase| Supabase["Supabase Storage REST API"]
CheckActive -->|cloudinary| Cloudinary["Cloudinary Upload API"]
CheckActive -->|database| LocalDB["Penyimpanan Base64 Database"]Perbandingan Penyedia
| Penyedia | Penggunaan Terbaik | Kredensial Utama |
|---|---|---|
| Cloudflare R2 | Asset volume besar tanpa biaya transfer data (egress) | Account ID, Access Key ID, Secret Key, Bucket Name, Public CDN URL |
| Supabase Storage | Terintegrasi dengan ekosistem Supabase | Project URL, Service Role Key, Bucket Name |
| Cloudinary | Optimasi gambar otomatis & media CDN responsif | Cloud Name, API Key, API Secret |
| Database Storage | Pengujian lokal tanpa perlu mendaftar cloud | Tanpa API key (Simpan langsung ke MySQL) |
Penggunaan & Uji Koneksi
/settings/integrations).Berkas Terkait
src/server/api/routers/storage.ts — Router tRPC untuk query penyimpanan, pergantian provider, dan uji koneksisrc/app/(admin)/settings/integrations/page.tsx — Panel konfigurasi penyimpanan di Admin GUI