Cloudflare R2: almacenamiento tipo S3 sin cargos de salida
Dedicados & VPS
22

Qué es R2

R2 es el servicio de object storage de Cloudflare, el equivalente a Amazon S3, Google Cloud Storage o DigitalOcean Spaces. Está pensado para guardar archivos que no encajan en una base de datos: imágenes, vídeos, copias de seguridad, adjuntos de usuarios, exportaciones grandes, logs archivados, etc. La gracia de R2 frente a la competencia es una sola palabra: egress.

La diferencia clave: sin cargos de salida

En S3 y similares, guardar un archivo es barato, pero descargarlo cuesta. Cada gigabyte que sale del bucket hacia el visitante de tu web, hacia otro servicio o hacia tu propio servidor, se factura. Esto convierte hospedar vídeo, imágenes de producto o backups que se restauran con frecuencia en una factura que crece sin control.

R2 no cobra egress. Subes los archivos, pagas un precio muy bajo por gigabyte almacenado al mes, y las descargas salen gratis. Solo se facturan las operaciones (PUT, GET, LIST...), y a un precio bastante razonable. Para cualquier proyecto donde el tráfico de salida era el cuello de botella económico, R2 cambia completamente las cuentas.

Compatible con la API de S3

R2 expone una API compatible con S3, lo que significa que puedes usar las mismas librerías (AWS SDK, boto3 en Python, aws-sdk en Node, etc.) apuntándolas al endpoint de R2. Si tu aplicación ya habla con S3, la migración suele limitarse a cambiar la URL del endpoint y las credenciales.

Casos de uso reales

  • Backups de servidores: copias nocturnas de tu VPS que quieres poder restaurar sin pagar egress.
  • Assets estáticos de un sitio: imágenes de un catálogo de ecommerce, descargas de un curso, PDFs de facturas.
  • Origen de un CDN: combinar R2 con la propia red de Cloudflare para servir archivos ultra rápido en todo el mundo.
  • Datalake barato: almacenar logs, eventos o exports que solo se consultan de vez en cuando.
  • Media hosting para apps: fotos de perfil y adjuntos de usuarios en una app móvil o SaaS.

Crear un bucket y subir archivos

En el panel de Cloudflare, dentro de la sección R2, puedes crear un bucket nuevo en un par de clicks: le das un nombre, eliges la ubicación preferida (o dejas automática) y listo. Para subir archivos tienes varias opciones: el propio panel incluye un subidor web muy básico, puedes usar la herramienta de línea de comandos oficial, o puedes conectar tu aplicación con cualquier cliente S3 usando las credenciales que genera Cloudflare para ti.

Servir archivos públicamente

Por defecto, los buckets son privados. Para que un archivo sea accesible desde la web hay dos caminos: activar un dominio público en el bucket (Cloudflare te asigna uno o puedes usar uno tuyo), o generar URLs firmadas temporales cuando quieres que un usuario acceda a un archivo concreto durante un tiempo limitado. Esto último es ideal para descargas privadas de clientes.

Integración con Workers

La combinación más potente de R2 aparece cuando lo usas junto con Workers. Puedes escribir un pequeño Worker que reciba la subida desde tu web, valide el usuario, comprima la imagen y la guarde en R2, todo en el borde de la red, sin pasar por tu servidor principal. Es un patrón muy común para aplicaciones modernas que necesitan mover archivos grandes sin saturar el hosting tradicional.

Si llevas tiempo buscando una alternativa a S3 donde los vídeos e imágenes no te arruinen a final de mes, R2 es la opción más directa hoy.