Skip to main content

MinIO storage adapter for SwarmauriSDK

Project description

Swarmauri Logo

PyPI - Downloads Hits PyPI - Python Version PyPI - License PyPI - swarmauri_storage_minio


Swarmauri MinIO Storage Adapter

Peagen storage adapter that saves artifacts to a MinIO or any S3-compatible bucket using the official minio Python client.

Features

  • Automatically creates the target bucket if it does not already exist.
  • Optional prefix argument to scope uploads without changing your keys.
  • Implements upload, download, upload_dir, download_dir, and iter_prefix helpers for working with single files or directories.
  • Exposes a root_uri describing the bucket and prefix (minio[s]://endpoint/bucket/prefix/).
  • MinioStorageAdapter.from_uri() reads credentials from MINIO_ACCESS_KEY and MINIO_SECRET_KEY environment variables for zero-copy configuration.

Installation

Using uv

uv add swarmauri_storage_minio
# or install into an existing environment
uv pip install swarmauri_storage_minio

Using Poetry

poetry add swarmauri_storage_minio

Using pip

pip install swarmauri_storage_minio

Usage

The adapter wraps a MinIO client instance. When you instantiate it, the bucket is created if it does not already exist. Use the secure flag for HTTPS endpoints (True by default) and supply a prefix when you want to namespace all uploads under a directory.

from swarmauri_storage_minio import MinioStorageAdapter
import io

adapter = MinioStorageAdapter(
    endpoint="localhost:9000",
    access_key="minio",
    secret_key="minio123",
    bucket="peagen",
    secure=False,
    prefix="examples/",
)
uri = adapter.upload("artifact.txt", io.BytesIO(b"data"))
print(uri)

downloaded = adapter.download("artifact.txt").read()
print(downloaded.decode("utf-8"))

Note: If you store credentials as SecretStr, call .get_secret_value() when passing them to the adapter.

Config-driven instantiation

The adapter can also be created from a URI. Credentials are loaded from environment variables.

from swarmauri_storage_minio import MinioStorageAdapter

adapter = MinioStorageAdapter.from_uri("minio://localhost:9000/peagen/examples/")
print(adapter.root_uri)

Want to help?

If you want to contribute to swarmauri-sdk, read up on our guidelines for contributing that will help you get started.

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

swarmauri_storage_minio-0.2.0.dev24.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

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

swarmauri_storage_minio-0.2.0.dev24-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file swarmauri_storage_minio-0.2.0.dev24.tar.gz.

File metadata

  • Download URL: swarmauri_storage_minio-0.2.0.dev24.tar.gz
  • Upload date:
  • Size: 8.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_storage_minio-0.2.0.dev24.tar.gz
Algorithm Hash digest
SHA256 ff9d3226806c47d21b52dd97f834dde4d155fc697d12367319566304793e7fa1
MD5 3918b301cec61c4c4ba22e8c54895c5c
BLAKE2b-256 70b9414873f3ec57d47ff3e6dea57a715c5e46851c56b990038ec63559bca010

See more details on using hashes here.

File details

Details for the file swarmauri_storage_minio-0.2.0.dev24-py3-none-any.whl.

File metadata

  • Download URL: swarmauri_storage_minio-0.2.0.dev24-py3-none-any.whl
  • Upload date:
  • Size: 9.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.3 {"installer":{"name":"uv","version":"0.10.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for swarmauri_storage_minio-0.2.0.dev24-py3-none-any.whl
Algorithm Hash digest
SHA256 882af3f78064bff8f3b183f57cefe15940ca5e51c04e5b15d1ff00bc76de1ab7
MD5 a8b2b4b400c45de24f886263eedd1e81
BLAKE2b-256 4077ce720fe0818db56270bc5a0631624193f6594fc0ba3541509b210b490c51

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