Cloudflare R2
R2 es la alternativa zero-egress. Habla la API de S3, soporta los conditional writes de los que depende NamiDB, y no cobra fees de egress.
Si se corre NamiDB fuera de AWS — en Cloudflare Workers, Fly.io, un VPS propio, la laptop — R2 es casi siempre la elección correcta.
Abrir un namespace
import osos.environ["AWS_ACCESS_KEY_ID"] = "<R2 access key>"os.environ["AWS_SECRET_ACCESS_KEY"] = "<R2 secret>"
client = tg.Client( "s3://my-bucket?ns=prod" "&endpoint=https://<ACCOUNT_ID>.r2.cloudflarestorage.com" "®ion=auto")El endpoint de R2 vive en https://<ACCOUNT_ID>.r2.cloudflarestorage.com.
La región tiene que ser auto.
Crear un bucket + token
- En el dashboard de Cloudflare, ir a R2 → Create bucket.
- R2 → Manage R2 API Tokens → Create API Token con “Object Read & Write” sobre el bucket.
- La descarga del token incluye un
Access Key IDy unSecret Access Key. Setearlos comoAWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEYy listo.
Qué funciona
| Capacidad | Estado |
|---|---|
Conditional writes (If-Match / If-None-Match) | ✅ |
| Replicación multi-region | ✅ (jurisdicciones de R2) |
| Políticas de lifecycle por bucket | ✅ |
| Endpoints / DNS personalizados | ✅ (buckets públicos de R2) |
Consideraciones de costo
- Storage: $0.015/GB-mes (Standard).
- Operaciones Class A (PUT, COPY, LIST): $4.50 por millón.
- Operaciones Class B (GET, HEAD): $0.36 por millón.
- Egress: $0.
Para workloads de agent-memory con patrones intensivos en lecturas, R2 suele ser ~30% más barato que el S3 equivalente, dominado por el egress cero.
Ver también
- AWS S3 — el backend principal
- Gramática de URIs