Documentação: Utilização da API S3 com o MinIO
1️⃣ Introdução
O MinIO é um servidor de armazenamento de objetos compatível com a
API S3 da AWS.
Isso significa que qualquer aplicação ou ferramenta que se integre ao
Amazon S3 pode ser utilizada com o MinIO sem modificações significativas
no código, bastando apontar para o endpoint correto.
Esta documentação descreve: - Pré-requisitos de instalação e configuração - Como criar usuários e chaves de acesso - Como interagir com o MinIO usando a API S3 (SDKs, CLI e exemplos de código)
2️⃣ Pré-Requisitos
- MinIO Server instalado e em execução
- Em modo standalone ou distributed
- Acesso ao painel de administração ou ao MinIO Client (mc) para criação de credenciais
- Ferramentas de teste:
awscli
oumc
- SDK da linguagem desejada (Python boto3, Java, Go, etc.)
3️⃣ Conceitos Básicos
O MinIO utiliza os mesmos conceitos do Amazon S3, apenas com nomenclatura e contexto próprios.
A tabela abaixo mostra o equivalente entre os dois:
Termo | MinIO | Amazon S3 |
---|---|---|
Bucket | Pasta lógica de objetos | Bucket |
Object | Arquivo armazenado | Object |
Access Key | Usuário / chave pública | AWS Access Key |
Secret Key | Senha / chave privada | AWS Secret Key |
Endpoint | URL de acesso ao serviço | S3 Endpoint |
4️⃣ Configuração do MinIO
- Crie e certifique se que seu MiniO está rodando com netstat -pltn
5️⃣ Criando Usuário e Chaves de Acesso
Via painel web
- Acesse o console administrativo (
http://hostname:4949
). (Assim como enviado no e-mail após criação) - Vá em Identity > Users > Create User.
- Anote:
- Access Key (usuário)
- Secret Key (senha)
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
Se você fez a instalação com Let's Encrypt o endpoint será usado com https
6️⃣ Acessando a API S3
6.1 Configurando o AWS CLI
Instale o AWS CLI.
Configure:
aws configure --profile minio
AWS Access Key ID [None]: <ACCESS_KEY>
AWS Secret Access Key [None]: <SECRET_KEY>
Default region name [None]: us-east-1
Default output format [None]: json
Crie um arquivo ~/.aws/config
com:
[profile minio]
s3 =
endpoint_url = http://localhost:9000
Teste:
aws --profile minio s3 ls
7️⃣ Exemplos de Uso
7.1 Criar Bucket
aws --profile minio s3 mb s3://meu-bucket
7.2 Enviar Arquivo
aws --profile minio s3 cp arquivo.txt s3://meu-bucket/
7.3 Listar Objetos
aws --profile minio s3 ls s3://meu-bucket/
7.4 Baixar Arquivo
aws --profile minio s3 cp s3://meu-bucket/arquivo.txt .
8️⃣ Exemplo com SDK (Python - boto3)
import boto3
s3 = boto3.client(
's3',
endpoint_url='http://localhost:9000',
aws_access_key_id='ACCESS_KEY',
aws_secret_access_key='SECRET_KEY'
)
# Criar bucket
s3.create_bucket(Bucket='meu-bucket')
# Enviar arquivo
s3.upload_file('arquivo.txt', 'meu-bucket', 'arquivo.txt')
# Listar arquivos
for obj in s3.list_objects_v2(Bucket='meu-bucket').get('Contents', []):
print(obj['Key'])
Você também pode usar a aws-sdk e o SDK Oficial do MiniO da mesma forma
9️⃣ Boas Práticas
- Utilizar HTTPS (TLS) em produção: configure certificado SSL.
- Gerenciar usuários e permissões com políticas (read-only, write-only, admin).
- Fazer backup periódico dos metadados e dados.
- Monitorar logs e uso de storage.
🧠 Dúvidas?
Entre em contato com o time de suporte técnico em caso de dificuldades na instalação ou configuração.