Skip to content

Minio Uploader

Minio Uploader adalah service Python + FastAPI yang menangani upload file ke MinIO object storage untuk RAGA. Menerima file gambar dan dokumen lewat multipart form, memvalidasi tipe MIME dan ukuran, lalu men-stream langsung ke MinIO tanpa membaca seluruh file ke memory. URL publik file dikembalikan langsung setelah upload selesai.

Service ini dipanggil oleh API Tarantula sebagai storage backend untuk file yang diunggah user.

Berbeda dari kebanyakan service RAGA lainnya, Minio Uploader tidak menggunakan Infisical — konfigurasi dibaca langsung dari file .env.

Tech Stack

KomponenTeknologi
RuntimePython 3.11
FrameworkFastAPI + uvicorn
Storage Clientminio Python SDK
Configpython-dotenv (.env langsung, tanpa Infisical)
Uploadpython-multipart (multipart/form-data)

Detail environment variable, validasi file, dan diagram alur lengkap ada di halaman Teknis.

Cara Kerja Singkat

  1. Client mengirim POST /upload/ dengan file di field images dan/atau files, plus folder_path opsional untuk menentukan lokasi penyimpanan.
  2. Setiap file divalidasi tipe MIME-nya terhadap whitelist, lalu ukurannya dicek (maksimum 100 MB).
  3. File di-stream langsung ke MinIO (put_object) — bucket dibuat otomatis kalau belum ada.
  4. Response berisi daftar URL publik ({MINIO_DOMAIN}/{bucket}/{folder}/{filename}) untuk setiap file yang berhasil diunggah.

Ringkasan

Minio Uploader adalah lapisan tipis dan sederhana antara service RAGA lain dan MinIO — fokus pada validasi dan streaming upload yang efisien, tanpa menyimpan state atau melakukan pemrosesan lebih lanjut terhadap file yang diunggah.