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.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-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: swarmauri_storage_minio-0.2.0.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.tar.gz
Algorithm Hash digest
SHA256 6c31356f7e837f96ea54e3bfba72fa0b8eebf6072c83b5b51b619e810999313c
MD5 72e5b5cc78ed485fac7dd578e501f235
BLAKE2b-256 1d7756fb12b55c546331b9b6ad4bcca224dbd2b8a469bc076ef07fd1fc05c4f1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarmauri_storage_minio-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 9.7 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-py3-none-any.whl
Algorithm Hash digest
SHA256 7491c06aab103df999ea26364804e42addef4505e95e89b591c0cf1ed8c6b4af
MD5 e7799b94806e23eaf29359b2ed68a9f4
BLAKE2b-256 7e293e757221755ab609da5ebf4e7e07194d6aeda073a46a622e66f7a91edcd9

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