Skip to content

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 .env file.

Tech Stack

ComponentTechnology
RuntimePython 3.11
FrameworkFastAPI + uvicorn
Storage Clientminio Python SDK
Configpython-dotenv (.env directly, no Infisical)
Uploadpython-multipart (multipart/form-data)

Full environment variable, file validation, and flow diagram details are on the Technical page.

How It Works

  1. The client sends POST /upload/ with files in the images and/or files fields, plus an optional folder_path to control where they're stored.
  2. Each file's MIME type is validated against a whitelist, then its size is checked (100 MB max).
  3. The file is streamed directly to MinIO (put_object) — the bucket is created automatically if it doesn't exist.
  4. 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.