R2
Qué es
Imagina un enorme almacén en línea donde dejas cajas de archivos y las recoges más tarde. R2 es el almacenamiento de objetos de Cloudflare — ese almacén — un lugar para guardar archivos: imágenes, videos, copias de seguridad, subidas de usuarios, artefactos de compilación. Habla la misma (Application Programming Interface — Interfaz de Programación de Aplicaciones, el conjunto de comandos que usan las herramientas para comunicarse con él) que Amazon S3, así que la mayoría de las herramientas y SDKs (Software Development Kits — Kits de Desarrollo de Software, bibliotecas de código ya hechas) de S3 funcionan con él sin cambios. La gran diferencia está en los precios: R2 cobra por almacenamiento y operaciones, pero no tiene tarifas de salida (sin cargo por los datos que salen del almacén), así que servir datos hacia afuera es gratis.
Puntos fuertes
- Cero tarifas de salida — un ahorro importante para aplicaciones con mucho contenido multimedia o muchas descargas.
- API compatible con S3, así que las herramientas y bibliotecas existentes simplemente funcionan.
- Se puede vincular directamente a un Worker para leer y escribir sin credenciales en el código.
- Puede colocarse detrás de la CDN de Cloudflare (Content Delivery Network — Red de Distribución de Contenido, un conjunto mundial de servidores que mantienen copias de los archivos cerca de cada visitante) para una entrega rápida y en .
- Escala a objetos y buckets grandes sin necesidad de aprovisionamiento.
Contrapartidas
- Es almacenamiento de objetos, no un sistema de archivos ni una — no se puede consultar dentro de los archivos.
- Las operaciones (PUT/GET/LIST) se facturan, así que los patrones de acceso muy frecuentes se acumulan.
- La consistencia fuerte y algunas funciones difieren en detalles respecto a S3; conviene revisar los casos límite.
- Para valores pequeños que cambian con frecuencia, KV (un almacén clave-valor, como un diccionario gigante) o D1 (una base de datos ) encajan mejor.
Cuándo usarlo
Usa R2 para subidas de usuarios, archivos generados, activos estáticos grandes, exportaciones de datos y copias de seguridad — especialmente en cualquier caso donde los costos de ancho de banda en S3 resultarían dolorosos.
Encaje con vibe coding
R2 encaja bien con builds dirigidos por IA porque el binding elimina la típica danza de credenciales — el escribe directamente en env.BUCKET. Indícale al agente si los archivos son públicos (servidos mediante un Worker o un personalizado) o privados (acceso firmado), para que configure la entrega correctamente. El ejemplo vincula un bucket y sube un archivo desde la (Command Line Interface — Interfaz de Línea de Comandos).
# wrangler.toml
[[r2_buckets]]
binding = "BUCKET"
bucket_name = "uploads"
npx wrangler r2 bucket create uploads
npx wrangler r2 object put uploads/logo.png --file ./logo.png