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

Uploaded Python 3

File details

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

File metadata

  • Download URL: swarmauri_storage_minio-0.2.0.dev23.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.dev23.tar.gz
Algorithm Hash digest
SHA256 6ee800d92e754e0a10ecd3d88c67649e072026a2e7879067a61a80207d73df6d
MD5 c4e466cc79b71b04cd8e04681a7715c8
BLAKE2b-256 794ca755e43f421a47be14257b264cea494aaeb42c1655d4adb11669f152e437

See more details on using hashes here.

File details

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

File metadata

  • Download URL: swarmauri_storage_minio-0.2.0.dev23-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.dev23-py3-none-any.whl
Algorithm Hash digest
SHA256 082cd8ce80718ef1c404951fd8a35f7be433d5d6ad6de24361a13027f2777d48
MD5 6fdc4910b627625f6c66fa3716b174d1
BLAKE2b-256 42d18bb6deeb629614b0c489127ca309b7efbd22825e590eb8c96cff5118d284

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