DEV Community

Alex Spinov
Alex Spinov

Posted on

MinIO Has a Free API — S3-Compatible Object Storage You Can Self-Host

MinIO is a high-performance, S3-compatible object storage server. Run your own S3 locally or on your servers — same API, no cloud vendor lock-in.

What Is MinIO?

MinIO is 100% compatible with the Amazon S3 API. Any tool that works with S3 works with MinIO — SDKs, CLIs, applications.

Features:

  • S3 API compatible
  • Single binary
  • Erasure coding
  • Encryption at rest
  • Bucket versioning
  • Free and open source

Quick Start

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

Console: http://localhost:9001
API: http://localhost:9000

S3 API (works with any S3 SDK)

# Using AWS CLI with MinIO
aws --endpoint-url http://localhost:9000 s3 mb s3://my-bucket
aws --endpoint-url http://localhost:9000 s3 cp file.txt s3://my-bucket/
aws --endpoint-url http://localhost:9000 s3 ls s3://my-bucket/
Enter fullscreen mode Exit fullscreen mode

Python (boto3)

import boto3

s3 = boto3.client("s3",
    endpoint_url="http://localhost:9000",
    aws_access_key_id="admin",
    aws_secret_access_key="password123"
)

s3.create_bucket(Bucket="data")
s3.upload_file("local.csv", "data", "remote.csv")

for obj in s3.list_objects_v2(Bucket="data")["Contents"]:
    print(obj["Key"])
Enter fullscreen mode Exit fullscreen mode

Use Cases

  1. Local S3 — develop without AWS costs
  2. Data lake — store Parquet, CSV, JSON
  3. Backup storage — self-hosted backups
  4. ML data — training data storage
  5. Media storage — images, videos, documents

MinIO vs S3

Feature MinIO AWS S3
API Same Same
Price Free Pay per use
Location Your servers AWS regions
Performance Very fast Fast
Vendor lock-in None AWS

Need web data at scale? Check out my scraping tools on Apify or email spinov001@gmail.com for custom solutions.

Top comments (0)