Try Hanzo
s3.hanzo.ai

Hanzo Storage

Buckets for files, weights and backups

Anything that is a file — uploads, model weights, datasets, database backups, rendered media — kept in buckets addressed over HTTP. Send a large one in parts and resume the part that failed. Hand out a link that expires. Keep the old version of an object so an overwrite is recoverable, and let a lifecycle rule retire what has aged. Objects are erasure-coded across ten data shards and four parity shards, so four can be lost and the object still reads.

Paste and ship

Paste this into any agent. It reads the skill manifest and calls Storage from there.

Agent prompt
Read https://hanzo.ai/skill.md and use Hanzo Storage in my project. Start with: hanzo s3 buckets list

What a bucket gives you

The pieces you would otherwise build around a filesystem, already built.

01

One HTTP API for objects

Buckets, objects, prefixes and listings over HTTP. Presigned URLs hand someone a link that stops working on a schedule. Multipart upload covers the file too big to send in one request.

02

Keys from KMS, not a config file

Each object gets a fresh data key, sealed under a key derived from your master, the key id and that request's own context. The master itself never lands on disk. Supply your own per-object key instead if you would rather hold it.

03

Large objects, handled as large

An upload splits into parts that travel in parallel, and a part that fails retries on its own rather than restarting the file — which is the whole difference between a resumable upload and an unresumable one at the sizes weights and datasets reach.

04

A console you sign into

Browse buckets, upload, set permissions and watch usage in the browser — behind your Hanzo account rather than a second password nobody remembers.

05

Versions, locks and expiry

Keep old versions so an overwrite is recoverable. Put a retention period or a legal hold on an object and it cannot be deleted before its time. Write a lifecycle rule and the rest ages out on its own.

06

Sessions instead of standing keys

Sign in through OIDC and take a short-lived session rather than pasting a long-lived access key into a deployment. Bucket policies and per-user rules decide what that session can reach.

Buckets
Over HTTP
AES-256
At rest
10 + 4
Erasure coding
OIDC
SSO built-in

Three lines of setup

upload.py
import boto3

s3 = boto3.client("s3",
    endpoint_url="https://s3.hanzo.ai",
    aws_access_key_id="your-access-key",
    aws_secret_access_key="your-secret-key",
)

# Upload a file
s3.upload_file("model.safetensors", "models", "v1/model.safetensors")

# Generate presigned URL
url = s3.generate_presigned_url("get_object",
    Params={"Bucket": "models", "Key": "v1/model.safetensors"},
    ExpiresIn=3600,
)
Open Source Revenue Sharing

Up to 5% of compute goes back to open source

Every deployment is SBOM-verified. Contributors to MinIO earn a share of compute revenue — transparent, on-chain, and customizable by the community.

Make a bucket

Get started with 10 GB free. No egress fees on Hanzo Cloud.

Start building with Storage

One API key. One credit balance. Every primitive.

Open source

License: Apache-2.0hanzoai/s3

Get Storage

Distributed object storage