Skip to main content

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

docs.apimin.io Release PyPI Version Build status codecov Commit activity License

apiminio banner

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.

📄 Table of Contents

💡 Project

  1. At 1st basic implementation of apiminio, handling buckets and files will be focused.
  2. Security will be at the 2nd development stage using authenticated sessions by credentials as well as tokens.
  3. Certificate handling and TLS will be the 3rd level.

🚦 Prerequisites

🚀 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 FastAPI to deploy your apiminio server via Uvicorn 🦄🐍 Open apiminio docs and explore your new API on http://localhost:8000 🔬

Thats it! Please leave me a ⭐ if you like the projekt 🤗

🥐 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

Andreas Räder

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

apiminio-0.2.4.tar.gz (1.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apiminio-0.2.4-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file apiminio-0.2.4.tar.gz.

File metadata

  • Download URL: apiminio-0.2.4.tar.gz
  • Upload date:
  • Size: 1.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for apiminio-0.2.4.tar.gz
Algorithm Hash digest
SHA256 a1bd34061d143e7588c08d94beb923cd72f568362960f4b12b8546c39a3ce031
MD5 cdcc2e27b4e912ff6d60947caf97ff82
BLAKE2b-256 89662a35a459fe84c441837cdfd6fd67926813bfcde9e0299af28450c29dbd39

See more details on using hashes here.

File details

Details for the file apiminio-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: apiminio-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for apiminio-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e714997617ea73cf0eced7a57b3232bc42af657c65273bf74779e9267cb57540
MD5 0b51d3fcbcaf5c71ba106cbff489908e
BLAKE2b-256 239ab9ac51ad6d607e8841493243db3951d31bbebaadc7405f47916ad183e0c8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page