Upload, kelola, dan sajikan file gambar dari satu endpoint. Multi-tenant, isolasi per client, public & private visibility, dan siap upgrade ke S3-compatible storage.
Setiap client punya namespace sendiri. Client A tidak bisa membaca file milik Client B.
Mulai dari local disk, pindah ke S3/MinIO/R2 cukup dengan ganti .env — kontrak API tidak berubah.
File public punya URL permanen. File private hanya bisa diakses via signed URL dengan expiry.
Authorization: Bearer <token>
| Method | Endpoint |
|---|---|
| POST | /api/v1/files |
| GET | /api/v1/files |
| GET | /api/v1/files/{uuid} |
| POST | /api/v1/files/{uuid}/temporary-url |
| DELETE | /api/v1/files/{uuid} |
| GET | /files/{uuid} |
| GET | /private-files/{uuid}?signature=… |
| Field | Aturan |
|---|---|
| file | Wajib. Format: jpg, jpeg, png, webp, gif. Maks sesuai konfigurasi client (default 5 MB). |
| visibility | Opsional. public (default) atau private. |
| collection | Opsional. Grup file, huruf kecil/angka/_-, maks 50 karakter. Contoh: avatars. |
curl -X POST 'https://storage.jmg.net.id/api/v1/files' \ -H 'Authorization: Bearer sm_live_TOKEN_ANDA' \ -H 'Accept: application/json' \ -F 'file=@/tmp/avatar.jpg' \ -F 'visibility=public' \ -F 'collection=avatars'