Minio Uploader
Minio Uploader is the Python + FastAPI service that handles file uploads to MinIO object storage for RAGA. It accepts image and document files via multipart form, validates MIME type and size, then streams them directly to MinIO without reading the entire file into memory. Public file URLs are returned as soon as the upload completes.
This service is called by API Tarantula as the storage backend for files uploaded by users.
Unlike most other RAGA services, Minio Uploader does not use Infisical — configuration is read directly from a
.envfile.
Tech Stack
| Component | Technology |
|---|---|
| Runtime | Python 3.11 |
| Framework | FastAPI + uvicorn |
| Storage Client | minio Python SDK |
| Config | python-dotenv (.env directly, no Infisical) |
| Upload | python-multipart (multipart/form-data) |
Full environment variable, file validation, and flow diagram details are on the Technical page.
How It Works
- The client sends
POST /upload/with files in theimagesand/orfilesfields, plus an optionalfolder_pathto control where they're stored. - Each file's MIME type is validated against a whitelist, then its size is checked (100 MB max).
- The file is streamed directly to MinIO (
put_object) — the bucket is created automatically if it doesn't exist. - The response contains a list of public URLs (
{MINIO_DOMAIN}/{bucket}/{folder}/{filename}) for each successfully uploaded file.
Summary
Minio Uploader is a thin, simple layer between other RAGA services and MinIO — focused on validation and efficient streaming uploads, without holding state or doing any further processing on the uploaded files.