MinIO / Tigris / LocalStack
El esquema s3:// de NamiDB funciona contra cualquier endpoint
compatible con S3. Lo único que cambia es endpoint=… en la URI.
MinIO (self-hosted)
El backend canónico de “S3 sobre metal propio”.
docker run -d --rm -p 9000:9000 -p 9001:9001 \ -e MINIO_ROOT_USER=minioadmin \ -e MINIO_ROOT_PASSWORD=minioadmin \ --name minio minio/minio server /data --console-address ":9001"
docker exec minio mc alias set local http://127.0.0.1:9000 minioadmin minioadmindocker exec minio mc mb local/namidbimport osos.environ["AWS_ACCESS_KEY_ID"] = "minioadmin"os.environ["AWS_SECRET_ACCESS_KEY"] = "minioadmin"
client = tg.Client( "s3://namidb?ns=dev" "&endpoint=http://127.0.0.1:9000" "®ion=us-east-1" "&allow_http=true")El flag allow_http=true es requerido porque MinIO no sirve TLS por
default.
Para un stack al estilo producción MinIO + namidb-server +
docker-compose, ver
Self-host con Docker Compose.
Tigris
Tigris es un servicio de storage compatible con S3 y edge-native.
client = tg.Client( "s3://my-bucket?ns=prod" "&endpoint=https://fly.storage.tigris.dev" "®ion=auto")Setear AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY con el token de
Tigris.
LocalStack
Para tests que necesitan un mock de S3 en proceso:
docker run -p 4566:4566 -e SERVICES=s3 localstack/localstackaws --endpoint-url=http://localhost:4566 s3 mb s3://namidb-devexport AWS_ACCESS_KEY_ID=testexport AWS_SECRET_ACCESS_KEY=testclient = tg.Client( "s3://namidb-dev?ns=local" "&endpoint=http://localhost:4566" "&allow_http=true" "®ion=us-east-1")