# 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 ```yaml minio: image: minio/minio:latest command: server /data --console-address ":9001" environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin123 ports: - "9000:9000" # API - "9001:9001" # Console volumes: - minio-data:/data ``` ## Utilizzo ### Accesso Console Apri: http://localhost:9001 Login: minioadmin / minioadmin123 ### AWS CLI ```bash 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) ```python 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.