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
- At 1st basic implementation of apiminio, handling buckets and files will be focused.
- Create buckets
- List buckets
- Delete buckets
- Upload files
- Download files
- Delete files
- 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
🚀 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
FastAPIto deploy yourapiminioserver 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.
🦥 Authors
Metadata
Release files for apiminio 0.3.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apiminio-0.3.6.tar.gz | 1.6 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apiminio-0.3.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / apiminio-0.3.6.tar.gz
| Download URL | apiminio-0.3.6.tar.gz |
|---|---|
| Size | 1.6 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ff8d611ffa6a73cce1bcfc8ebd3f2de2d87965058e7bdbd1d91d04a60a038b60
|
|
BLAKE2b-256 checksum How to use checksums |
a352fc61ee5a31c1746a2c976bc117932ce50f1d93d9efe73e0710f14d04b8cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.14
|
Release files / apiminio-0.3.6-py3-none-any.whl
| Download URL | apiminio-0.3.6-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0605f427841b221c529d5d529df499af1fdcc63ca07dcc4cc5d571422b17334f
|
|
BLAKE2b-256 checksum How to use checksums |
e88bc8005160343224efaa34711212525eeba4ec2ce173f068507dcb5fe92c39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.6.14
|