DEV Community

Alex Spinov
Alex Spinov

Posted on

MinIO Has a Free S3-Compatible Storage — Self-Host Your Object Storage

AWS S3 charges for storage, requests, and egress. MinIO gives you the same S3 API — on your own hardware, with zero egress fees.

What is MinIO?

MinIO is a high-performance, S3-compatible object storage system. Use any S3 SDK, any S3-compatible tool — they all work with MinIO. Self-host or use their cloud offering.

Why MinIO

1. S3 API Compatible

import boto3

s3 = boto3.client('s3',
    endpoint_url='http://localhost:9000',
    aws_access_key_id='minioadmin',
    aws_secret_access_key='minioadmin',
)

# Upload
s3.upload_file('report.pdf', 'my-bucket', 'reports/2026/report.pdf')

# Download
s3.download_file('my-bucket', 'reports/2026/report.pdf', 'local.pdf')

# List
response = s3.list_objects_v2(Bucket='my-bucket', Prefix='reports/')
for obj in response['Contents']:
    print(obj['Key'], obj['Size'])
Enter fullscreen mode Exit fullscreen mode

2. Docker Deployment

docker run -p 9000:9000 -p 9001:9001 \
  -e MINIO_ROOT_USER=admin \
  -e MINIO_ROOT_PASSWORD=password \
  -v /data:/data \
  minio/minio server /data --console-address ":9001"
Enter fullscreen mode Exit fullscreen mode

Admin console at :9001. S3 API at :9000.

3. Erasure Coding (Fault Tolerant)

# 4-drive setup — survives 2 drive failures
minio server /data{1...4}

# 16-drive setup — survives 8 drive failures
minio server /data{1...16}
Enter fullscreen mode Exit fullscreen mode

4. Event Notifications

{
  "Event": [
    {
      "EventName": "s3:ObjectCreated:*",
      "Records": [{
        "s3": {
          "bucket": { "name": "uploads" },
          "object": { "key": "photo.jpg", "size": 1024 }
        }
      }]
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Webhooks, Kafka, NATS, Redis, PostgreSQL, MySQL — trigger actions on upload.

5. Performance

Single server, NVMe drives:
Read: 183 GB/s
Write: 171 GB/s

This is NOT a typo. MinIO is designed for AI/ML workloads where speed matters.
Enter fullscreen mode Exit fullscreen mode

MinIO vs S3 vs Cloudflare R2

MinIO AWS S3 Cloudflare R2
S3 compatible Yes Native Yes
Self-hosted Yes No No
Egress fees $0 $0.09/GB $0
Storage cost Hardware only $0.023/GB/mo $0.015/GB/mo
Performance 183 GB/s Fast Fast
License AGPL v3 Proprietary Proprietary

Getting Started

# Docker
docker run -p 9000:9000 -p 9001:9001 minio/minio server /data --console-address ":9001"

# Binary
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
Enter fullscreen mode Exit fullscreen mode

The Bottom Line

MinIO is S3 on your terms. Same API, extreme performance, zero egress fees. If you're spending too much on S3, MinIO cuts that bill to hardware costs only.


Need data tools? I build scraping solutions. Check my Apify actors or email spinov001@gmail.com.

Top comments (0)