1.8 KiB
1.8 KiB
Tutorial 2: MinIO - Storage S3-Compatible
Obiettivi
- Capire cosa è MinIO
- Deploy MinIO con Docker Compose
- Usare S3 API localmente
- Configurare client S3
Cos'è MinIO?
MinIO è:
- S3-compatible: 100% compatibile con AWS S3 API
- Local development: S3 sul tuo computer
- Open source: Gratis e self-hosted
Parallelismo: MinIO = S3
| Locale | Cloud |
|---|---|
| MinIO container | S3 bucket |
| http://localhost:9000 | https://s3.amazonaws.com |
| mc ls | aws s3 ls |
| minioadmin | AWS credentials |
Configurazione
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin123
ports:
- "127.0.0.1:9000:9000" # API
- "127.0.0.1:9001:9001" # Console
volumes:
- minio-data:/data
Nel repository trovi gia questa configurazione dentro docker-compose.yml. Il flusso consigliato e usare quel file direttamente:
cd labs/lab-04-storage
docker compose up -d
docker compose ps
Utilizzo
Accesso Console
Apri: http://localhost:9001 Login: minioadmin / minioadmin123
Verifica Health Endpoint
curl http://127.0.0.1:9000/minio/health/live
AWS CLI
aws s3 ls --endpoint-url http://localhost:9000
aws s3 mb s3://testbucket --endpoint-url http://localhost:9000
aws s3 cp file.txt s3://testbucket/ --endpoint-url http://localhost:9000
Python (boto3)
import boto3
s3 = boto3.client('s3', endpoint_url='http://localhost:9000',
aws_access_key_id='minioadmin',
aws_secret_access_key='minioadmin123')
s3.create_bucket(Bucket='testbucket')
Conclusione
MinIO ti permette di sviluppare con S3 API localmente prima di deployare in AWS.