Skip to main content

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:
    • awscli or mc
    • 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:

TermMinIOAmazon S3
BucketLogical folder of objectsBucket
ObjectStored fileObject
Access KeyUser / public keyAWS Access Key
Secret KeyPassword / private keyAWS Secret Key
EndpointService access URLS3 Endpoint

4️⃣ MinIO Configuration

  1. Create and make sure your MinIO is running with netstat -pltn

5️⃣ Creating User and Access Keys

Via web panel

  1. Access the admin console (http://hostname:4949). (As sent in the email after creation)
  2. Go to Identity > Users > Create User.
  3. 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.

🔗 References