Saltearse al contenido

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”.

Ventana de terminal
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 minioadmin
docker exec minio mc mb local/namidb
import os
os.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"
"&region=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"
"&region=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:

Ventana de terminal
docker run -p 4566:4566 -e SERVICES=s3 localstack/localstack
aws --endpoint-url=http://localhost:4566 s3 mb s3://namidb-dev
export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
client = tg.Client(
"s3://namidb-dev?ns=local"
"&endpoint=http://localhost:4566"
"&allow_http=true"
"&region=us-east-1"
)

Ver también