Documentation: Using the S3 API with MinIO
1️⃣ Introduction
MinIO is an object storage server compatible with the S3 API.
This means that any application or tool that integrates with S3 can be used with MinIO without significant code changes, just by pointing to the correct endpoint.
This documentation describes: - Installation and configuration prerequisites - How to create users and access keys - How to interact with MinIO using the S3 API (SDKs, CLI, and code examples)
2️⃣ Prerequisites
- MinIO Server installed and running
- In standalone or distributed mode
- Access to the admin panel or MinIO Client (mc) to create credentials
- Testing tools:
awscliormc- SDK of the desired language (Python boto3, Java, Go, etc.)
3️⃣ Basic Concepts
MinIO uses the same concepts as Amazon S3, only with its own naming and context.
The table below shows the equivalent terms between the two:
| Term | MinIO | Amazon S3 |
|---|---|---|
| Bucket | Logical folder of objects | Bucket |
| Object | Stored file | Object |
| Access Key | User / public key | AWS Access Key |
| Secret Key | Password / private key | AWS Secret Key |
| Endpoint | Service access URL | S3 Endpoint |
4️⃣ MinIO Configuration
- Create and make sure your MinIO is running with netstat -pltn
5️⃣ Creating User and Access Keys
Via web panel
- Access the admin console (
http://hostname:4949). (As sent in the email after creation) - Go to Identity > Users > Create User.
- Note:
- Access Key (user)
- Secret Key (password)
Via MinIO Client (mc)
mc alias set local http://localhost admin senhaSegura
mc admin user add local usuario-api SenhaAPI
mc admin policy attach local readwrite --user usuario-api
“Native MinIO API” mode (without S3)
If you want to avoid depending on the AWS SDK (and use something directly from MinIO), then you use the official MinIO CLI and SDKs, such as:
🧰 MinIO Client (mc)
Official tool — native and complete — to manage, list, and transfer objects.
Set alias
mc alias set local http://localhost:9000 usuario senha
Create bucket
mc mb local/meu-bucket
Upload file
mc cp arquivo.txt local/meu-bucket/
List
mc ls local/meu-bucket/
Download
mc cp local/meu-bucket/arquivo.txt .
👉 No awscli or S3 endpoint is needed here — just the mc binary and the MinIO service.
💻 Official MinIO SDK
You can also use the direct SDKs, which do not require AWS S3 libraries:
Python (minio):
pip install minio
Example minio_teste.py
from minio import Minio
client = Minio(
"localhost:9000",
access_key="ACCESS_KEY",
secret_key="SECRET_KEY",
secure=False
)
# Criar bucket
client.make_bucket("meu-bucket")
# Enviar arquivo
client.fput_object("meu-bucket", "arquivo.txt", "arquivo.txt")
# Listar arquivos
for obj in client.list_objects("meu-bucket"):
print(obj.object_name)
🧠 Questions?
Contact the technical support team if you have difficulties with installation or configuration.