Pular para o conteúdo principal

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 ou mc
    • 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:

TermoMinIOAmazon S3
BucketPasta lógica de objetosBucket
ObjectArquivo armazenadoObject
Access KeyUsuário / chave públicaAWS Access Key
Secret KeySenha / chave privadaAWS Secret Key
EndpointURL de acesso ao serviçoS3 Endpoint

4️⃣ Configuração do MinIO

  1. Crie e certifique se que seu MiniO está rodando com netstat -pltn

5️⃣ Criando Usuário e Chaves de Acesso

Via painel web

  1. Acesse o console administrativo (http://hostname:4949). (Assim como enviado no e-mail após criação)
  2. Vá em Identity > Users > Create User.
  3. 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
dica

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'])
info

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.

🔗 Referências