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.
Project description
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.
- Github repository: https://github.com/raederan/apiminio/
- Documentation https://raederan.github.io/apiminio/
📄 Table of Contents
- 📚 Project
- 🚦 Prerequisites
- 🚀 Install
- 💥 Usage 🌰🐿️
- 🥐 Recommended Dev Setup Kubernetes
- 🛞 Commands
- 📜 License
- 🦥 Authors
📚 Project
- At 1st basic implementation of apiminio, handling buckets and files will be focused.
- 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 like:
from apiminio import Apiminio, MinioConfig
from pydantic import SecretStr
app = Apiminio(
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)
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🦄🐍
🥐 Recommended Dev Setup 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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apiminio-0.2.2.tar.gz.
File metadata
- Download URL: apiminio-0.2.2.tar.gz
- Upload date:
- Size: 1.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63f98875b48579390419b0eca23eea1290ecbbab97c32220e1815b3a55f50cb8
|
|
| MD5 |
f6d17121a3aa799828638dc52a9ac77f
|
|
| BLAKE2b-256 |
05542c3fa30eec6b808a98ae63911a4de1a0ab6aa88912988ae1c75b74b115d3
|
File details
Details for the file apiminio-0.2.2-py3-none-any.whl.
File metadata
- Download URL: apiminio-0.2.2-py3-none-any.whl
- Upload date:
- Size: 9.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c164fc517d0e6454b0700dce3062a2cc4d5ed7d0a0a209b070329885569a5a7
|
|
| MD5 |
a33c2968ecde3ffbb4e9dc803a21368d
|
|
| BLAKE2b-256 |
a95b6a59f663a7edd9a36141544035e64d1741d8fe9ae7849fc7ba6ad7cda18b
|