apiminio ¶
apiminio is a Python package that provides a ready-to-use REST API for interacting with MinIO S3 storage, built with FastAPI and the MinIO Python client. It enables seamless file uploads, downloads, and bucket management via HTTP interface ideal for integrating MinIO S3 into your applications with minimal setup.
Additionally, wrapped AI agent tools via MCP are now supported to provide an interface for LLMs to S3 bucket objects β¨
π Customization of your own endpoints!
- Github repository https://github.com/raederan/apiminio/
- Documentation https://docs.apimin.io/
π Table of Contents ¶
- π‘ Project
- π¦ Prerequisites
- π Install
- π₯ Usage π°πΏοΈ
- βοΈ Minimal Example
- π Run the Server
- Support
- π₯ Kubernetes
- π Commands
- π License
- π¦₯ Authors
π‘ Project¶
- [ ] At 1st basic implementation of apiminio, handling buckets and files will be focused.
- [x] Create buckets
- [x] List buckets
- [x] Delete buckets
- [x] Upload files
- [ ] Download files
- [x] Delete files
- [x] MCP (Model Context Protocol) wrapped endpoints to enable usage for AI agent tools
- [ ] Customization of additional endpoints and MCP tools
- [ ] Security will be at the 2nd development stage using authenticated sessions by credentials as well as tokens.
- [ ] Certificate handling and TLS will be the 3rd level.
π¦ Prerequisites¶
- minio endpoint, access key, and secret key
- Recommended Dev Setup
- Kubernetes
- kubectl
- Skaffold
π Install¶
Recommended
uv add apiminio
or use pip
pip install apiminio
π₯ Usage π°πΏοΈ¶
Create your python file, e.g., apiminio_server.py
, configure your S3 server and run it.
You can use the following examples as a starting point.
βοΈ Minimal Example¶
from apiminio import Apiminio, MinioConfig
from pydantic import SecretStr
app = Apiminio(
minio_config=MinioConfig(
endpoint="localhost:9000",
access_key="minioadmin",
secret_key=SecretStr("minioadmin"),
secure=False
)
)
if __name__ == "__main__":
# Serve FastAPI using Uvicorn
import uvicorn
uvicorn.run("minimal:app", host="0.0.0.0", port=8000, reload=True)
π Run the Server¶
Either just run python apiminio_server.py
or use fastapi run apiminio_server.py
.
You can use flags and parmeters inherited from
FastAPI
to deploy yourapiminio
server viaUvicorn
π¦π Open apiminio docs and explore your new API on http://localhost:8000 π¬
Support¶
Thats it! Please leave me a β if you like the projekt π€ More features coming soon!
π₯ Kubernetes¶
This repository has a skaffold.yaml configuration with a working minio as well as the apiminio service to bootstrap the development ππ
π Commands¶
To clone this repository, run:
git clone https://github.com/raederan/apiminio.git
To instantly provide minio with apiminio, e.g., run:
skaffold dev --no-prune=false --cache-artifacts=false --default-repo localhost:32000/apiminio --port-forward
π License¶
This project is licensed under the terms of the Apache License 2.0.
The banner file is based on an original png generated using Microsoft Copilot and subsequently modified further as svg by the initial author of this repository.