Saltearse al contenido

Gramática de URIs

La URI es la forma en que cada cliente de NamiDB — Python, Rust, CLI, namidb-server — direcciona un namespace sobre un backend. La URI lleva tanto el bucket/path como el namespace.

Esquemas

EsquemaBackend
memory://<ns>En proceso, efímero — solo para tests
file:///abs/dir?ns=<ns>Filesystem local con CAS vía flock + atomic rename
s3://<bucket>[/<prefix>]?ns=<ns>AWS S3, Cloudflare R2, MinIO, Tigris, LocalStack
gs://<bucket>[/<prefix>]?ns=<ns>Google Cloud Storage
az://<account>/<container>[/<prefix>]?ns=<ns>Azure Blob Storage

Flags de query-string

Comunes entre los backends compatibles con S3:

FlagPropósito
?ns=<name>Requerido. Nombra el namespace dentro del bucket/prefix.
&region=<aws-region>Región. Para R2 usar auto.
&endpoint=<https-url>Sobrescribir el endpoint (R2, MinIO, LocalStack, Tigris, compatible con S3).
&allow_http=truePermitir endpoints http:// (LocalStack, MinIO local).

Específicos de GCS:

FlagPropósito
&service_account=<path>Sobrescribir GOOGLE_APPLICATION_CREDENTIALS.

Específicos de Azure:

FlagPropósito
&use_emulator=trueHablar con Azurite (el emulador local).

Ejemplos

AWS S3

s3://my-bucket/data?ns=prod&region=us-west-2

Cloudflare R2

s3://my-bucket?ns=prod
&endpoint=https://<ACCOUNT_ID>.r2.cloudflarestorage.com
&region=auto

Google Cloud Storage

gs://my-bucket/data?ns=prod
gs://my-bucket?ns=prod&service_account=/etc/gcs-key.json

Azure Blob

az://myacct/mycontainer?ns=prod
az://devstoreaccount1/mycontainer?ns=test&use_emulator=true

MinIO (local)

s3://namidb?ns=dev
&endpoint=http://127.0.0.1:9000
&region=us-east-1
&allow_http=true

LocalStack (mock de S3 para tests)

s3://namidb-dev?ns=local
&endpoint=http://localhost:4566
&allow_http=true
&region=us-east-1

Filesystem local

file:///var/lib/namidb?ns=prod
file://./data?ns=dev

Memoria efímera

memory://acme

Ver también