Saltearse al contenido

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 os
os.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"
"&region=auto"
)

El endpoint de R2 vive en https://<ACCOUNT_ID>.r2.cloudflarestorage.com. La región tiene que ser auto.

Crear un bucket + token

  1. En el dashboard de Cloudflare, ir a R2Create bucket.
  2. R2Manage R2 API TokensCreate API Token con “Object Read & Write” sobre el bucket.
  3. La descarga del token incluye un Access Key ID y un Secret Access Key. Setearlos como AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY y listo.

Qué funciona

CapacidadEstado
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