Penyimpanan file privat
src/lib/storage/private-object.ts menyimpan file Karya di Vercel Blob privat. Database menyimpan metadata file dan pemiliknya. Browser tidak menerima URL publik untuk mengakses file.
Alur upload
- Kandidat meminta izin upload untuk Karya miliknya.
- Server memeriksa pemilik dan aturan upload.
- Route konten menerima file dengan batas ukuran, lalu memeriksa formatnya.
- Server menetapkan status file setelah pemrosesan; status dari browser tidak dipakai.
src/domain/upload-policy.ts menetapkan format dan batas ukuran file. Pemeriksaan ekstensi bukan pemindaian malware.
Alur baca
Sebelum mengambil file dari bucket privat, route konten memeriksa izin aktor atas file itu. Respons memakai header cache yang sesuai untuk konten privat. ID file yang benar tidak otomatis memberi akses.
Konfigurasi
Hubungkan Blob privat ke project Vercel dan simpan konfigurasinya sebagai secret. Adapter membaca BLOB_READ_WRITE_TOKEN atau BLOB_STORE_ID sesuai integrasi SDK. Jika layanan belum tersedia, aplikasi mengembalikan PRIVATE_STORAGE_UNAVAILABLE.
Jangan masukkan token Blob ke NEXT_PUBLIC_*, MDX, screenshot, atau seed yang dikomit. Tautan eksternal pada Karya tetap mengikuti izin layanan asal.
Sebelum mengubah penyimpanan file, periksa kebijakan upload, akses objek privat, dan batas otorisasinya.