Alojamiento de imágenes gratis sin depender de nadie: Cloudflare R2 + PicGo

En 2023 alojaba las imágenes del blog en GitHub con jsDelivr CDN y funcionaba bien. Luego jsDelivr quedó bloqueado en China y todas las imágenes se rompieron. Probé varios alojamientos gratuitos: algunos borraban fotos sin avisar, otros cerraron de golpe. Qiniu Cloud y Alibaba Cloud OSS son estables, pero en China exigen registro de dominio y hay riesgo de cargos por exceso de cuota.
Cloudflare R2 ofrece 10 GB gratis, 1 millón de subidas y 10 millones de lecturas al mes, y lo clave: el tráfico de salida es totalmente gratuito. Llevo medio año sin pagar nada y la velocidad es buena. Con PicGo y subida con un clic, la experiencia es muy fluida. Este artículo recorre todo el proceso: por qué elegir R2, cómo configurar el acceso público y cómo conectar PicGo. En 30 minutos lo tienes.
¿Por qué usar R2 como alojamiento de imágenes?
Antes de decidirme por R2, comparé bastantes opciones. Primero repasemos el estado de los alojamientos gratuitos y entenderás por qué acabé en R2.
Problemas de otras soluciones gratuitas
GitHub + jsDelivr: fue la opción más popular, pero ya no sirve. jsDelivr sufrió contaminación DNS en China y quedó bloqueado; las imágenes del blog dejan de cargar. Además, usar GitHub para imágenes es un abuso: cada subida genera un commit, ensucia el historial y, si bloquean la cuenta, pierdes todo.
Alojamientos públicos gratuitos (como SM.MS u otros similares): el problema es la inestabilidad. Algunos borran imágenes sin avisar, otros cierran de golpe. He visto blogs enteros con imágenes rotas tras el cierre del servicio. Gratis suena bien, pero ¿confiarías todas las imágenes del blog ahí?
Proveedores en China (Qiniu Cloud, Alibaba Cloud OSS, Tencent COS): son estables y Qiniu también da 10 GB gratis. Pero en China exigen registro de dominio. Para un blog personal el trámite es pesado y hay riesgo de cargos por exceso. No es caro (unos pocos yuanes al mes tras 10 GB), pero no da tranquilidad.
Ventajas principales de R2
Comparado con el resto, Cloudflare R2 es hoy la mejor opción para un alojamiento personal. Tras medio año de uso, estas son las ventajas que más valoro:
1. Cuota gratuita muy generosa
La cuota de R2 incluye:
- Almacenamiento: 10 GB
- Subidas al mes: 1 millón (operaciones Clase A)
- Lecturas al mes: 10 millones (operaciones Clase B)
Para un blog personal sobra. Mi blog tiene más de 100 artículos y unas 500 imágenes, menos de 2 GB en total. A este ritmo, 10 GB duran años. Si superas la cuota, el costo es bajo: 0,015 USD/GB/mes, unos 0,1 CNY al mes por GB.
2. Tráfico de salida totalmente gratuito
Es la mayor ventaja frente a AWS S3. El almacenamiento tradicional (S3, Alibaba OSS) cobra por tráfico de salida, de unos céntimos a varios yuanes por GB. Con mucho tráfico, puede costar más que el almacenamiento.
En R2 el tráfico de salida es gratis: da igual cuántas veces se vean o descarguen las imágenes. Cloudflare usa su CDN global (más de 100 países y 275 ciudades) y el tráfico va por su red interna sin cargo extra.
3. Respaldo de un gran proveedor, estable y fiable
Cloudflare es uno de los mayores CDN del mundo, con valor de mercado de cientos de miles de millones de dólares. No te preocupas de que cierre de golpe o borre tus archivos. Además, Cloudflare tiene fama de ser muy amable con usuarios individuales.
4. Compatible con la API S3, migrable
R2 es totalmente compatible con la API de AWS S3. Si más adelante quieres migrar a otro servicio S3 (MinIO, Alibaba OSS, etc.), solo cambias la configuración sin reescribir código ni herramientas. Evitas quedar atado a un proveedor.
5. Sin registro de dominio, listo para usar
R2 es un servicio internacional: vincular tu dominio no exige registro en China. Registro en Cloudflare, activación de R2 y configuración: 30 minutos en total. Muy cómodo para un blog personal.
Un recordatorio
Lo único a tener en cuenta: activar el servicio exige vincular tarjeta o PayPal. Es solo verificación de identidad, sin cargo automático. Yo también dudé al principio, pero tras vincular confirmé que no cobran; medio año sin pagar nada. Si te preocupa la seguridad, usa tarjeta virtual o PayPal doméstico.
Bien, con las ventajas claras, vamos al montaje.
Flujo completo: alojamiento de imágenes con Cloudflare R2 + PicGo
En 30 minutos, monta un alojamiento de imágenes personal totalmente gratuito: desde registrar R2 hasta configurar PicGo con subida en un clic
Estimated time: PT30M
-
1
Step 1: Paso 1: Registrar y activar R2
Crea una cuenta en Cloudflare y en el menú lateral busca R2 Object Storage para activar el servicio. -
2
Step 2: Paso 2: Crear el bucket
Clic en Crear bucket en la esquina superior derecha; elige un nombre reconocible (p. ej. blog-images; es globalmente único). -
3
Step 3: Paso 3: Configurar acceso público (clave)
Opción 1 (pruebas): -
4
Step 4: Paso 4: Crear token API
Vuelve a la página Overview de R2 → Gestionar tokens API de R2 → Crear token API. -
5
Step 5: Paso 5: Instalar PicGo y el plugin S3
Descarga PicGo: -
6
Step 6: Paso 6: Configurar PicGo S3
Configuración de almacenamiento → Amazon S3: -
7
Step 7: Paso 7: Probar la subida
Pasos: -
8
Step 8: Paso 8: Optimización (opcional)
Reglas de caché:
Pasos detallados para montar el alojamiento en R2
Entramos en la parte práctica. Explico cada paso; solo tienes que seguir.
Paso 1: Registrar y activar el servicio R2
Primero necesitas una cuenta en Cloudflare. Si no la tienes, regístrate gratis en la web de Cloudflare: email y contraseña, muy sencillo.
Tras iniciar sesión, en el menú lateral busca R2 Object Storage. Si es la primera vez, te pedirá activar el servicio.
Punto importante: activar R2 exige vincular un método de pago (tarjeta o PayPal).
Mucha gente se echa atrás aquí; yo también dudé. Pero es solo verificación de identidad: no hay cargo automático. La cuota gratuita es real; solo pagas si superas la cuota y lo confirmas.
Puedes vincular:
- Tarjeta de crédito con divisas (Visa, MasterCard)
- PayPal (también el doméstico)
- Tarjeta virtual (si te preocupa la seguridad)
Tras vincular, clic en Activar servicio R2; unos segundos y listo.
Paso 2: Crear el bucket
Con R2 activo, clic en Crear bucket arriba a la derecha.
Nombre del bucket: algo reconocible, como blog-images o my-pics. Es globalmente único; si está ocupado, prueba otro.
Ubicación: hay un truco aquí.
Muchos tutoriales recomiendan Asia-Pacífico por cercanía a China. No siempre es lo mejor. Probé ambas:
- Asia-Pacífico: más rápido en China, más limitado internacionalmente
- Oeste de Norteamérica (WNAM): con la CDN de Cloudflare, equilibrio global; en China también es aceptable
Yo elegí Oeste de Norteamérica por lectores internacionales. Elige según tu audiencia.
Clase de almacenamiento: Standard.
Clic en Crear; el bucket queda listo en segundos.
Paso 3: Configurar acceso público (paso clave)
Tras crear el bucket, entra en su configuración. Este paso es clave y donde muchos se atascan.
R2 es privado por defecto. Para imágenes públicas hay dos vías:
Opción 1: subdominio r2.dev (para pruebas)
La más simple al empezar.
- En la configuración del bucket, baja hasta R2.dev subdomain
- Clic en Allow Access
- En el cuadro de confirmación escribe
allowy confirma
Cloudflare genera una URL pública similar a:
https://pub-xxxxx.r2.dev
Pero hay una trampa: r2.dev tiene límite de velocidad y solo sirve para desarrollo. Con tráfico alto las imágenes fallan. Cloudflare recomienda dominio personalizado en producción.
La primera vez no lo vi; con un poco más de tráfico las imágenes dejaron de cargar. Cambié a dominio personalizado; lección aprendida a base de errores.
Opción 2: dominio personalizado (recomendado en producción)
Si tienes dominio propio, úsalo: sin límite de velocidad y con caché, antihotlink, etc.
Requisito: el dominio delegado en Cloudflare (DNS apuntando a Cloudflare). Si no, añade el dominio en la consola y cambia los servidores DNS; es gratis.
Pasos:
- En la configuración del bucket, Custom Domains
- Clic en Add
- Introduce el subdominio, p. ej.
img.tudominio.com - Clic en Continue
- Cloudflare añade el CNAME en DNS
- Clic en Connect Domain
Tras unos minutos de propagación DNS, la URL de las imágenes será:
https://img.tudominio.com/path/to/image.png
Yo uso dominio personalizado con la estrategia de caché que explico más abajo: estable y rápido.
Paso 4: Crear el token API
Con el acceso público listo, genera claves API para que PicGo suba imágenes.
- Vuelve a Overview de R2
- Clic en Manage R2 API Tokens
- Clic en Create API Token
- Nombre del token, p. ej.
PicGo-Upload - Permisos: Object Read & Write
- Clic en Create API Token
¡Muy importante! Tras crearlo, Cloudflare muestra tres datos:
- Access Key ID
- Secret Access Key
- Endpoint S3 API (similar a
https://xxxxx.r2.cloudflarestorage.com)
Solo se muestran una vez. Cierra la página y no los verás de nuevo. Cópialos y guárdalos en un gestor de contraseñas o archivo cifrado.
Si cerraste sin copiar, borra el token y créalo de nuevo. A mí me pasó la primera vez; no repitas el error.
Consejo: el endpoint S3 también está en Overview → Use R2 with S3 API; es la URL que empieza por https://.
Con esto termina la parte de R2. Siguiente: PicGo.
Configuración práctica de PicGo
PicGo es una herramienta open source de subida de imágenes compatible con muchos almacenamientos. Configurado, arrastras la imagen, sube y copia el enlace Markdown al portapapeles.
Paso 1: Instalar PicGo y el plugin S3
Descargar PicGo
En la web de PicGo o en GitHub Releases, descarga el instalador de tu sistema:
- Windows:
.exe - macOS:
.dmg - Linux:
.AppImage
Instalación sencilla, siguiente-siguiente.
Recomendación avanzada: PicList
Si quieres más funciones, prueba PicList, fork de PicGo con:
- Gestión de imágenes (ver y borrar subidas)
- Compresión (con o sin pérdida)
- Conversión de formato (WebP, etc.)
- Marca de agua
Yo uso PicList ahora; la instalación es igual que PicGo.
Instalar el plugin S3
PicGo no trae S3 de serie; hace falta un plugin.
- Abre PicGo → Configuración de plugins
- Busca
s3 - Instala
picgo-plugin-s3os3-lls(cualquiera sirve) - Clic en Instalar y espera
Nota: el plugin necesita Node.js. Si falla la instalación:
- Problema de red (descarga desde GitHub, puede ir lento en China)
- Sin Node.js (descarga en nodejs.org)
- Permisos (en Windows a veces hace falta administrador)
Si no instala online, prueba instalación offline u otra red.
Paso 2: Configurar los parámetros S3
Con el plugin instalado, Configuración de almacenamiento → Amazon S3 (o AWS S3).
Cada parámetro importa; los repaso uno a uno.
ID de clave de acceso (Access Key ID)
Pega el Access Key ID guardado al crear el token en R2.
Clave secreta (Secret Access Key)
Pega la Secret Access Key.
No inviertas las dos: el ID es más corto, la clave más larga.
Bucket (Bucket Name)
Nombre del bucket en R2, p. ej. blog-images.
Es el nombre del bucket, no el ARN ni la URL.
Ruta de archivo (Upload Path)
Organiza las imágenes en el bucket. Formatos recomendados:
{year}/{month}/{md5}.{extName}— por año/mes, MD5 evita duplicadosPicGo/{fullName}— carpeta PicGo, nombre original{year}/{month}/{fullName}— por año/mes, nombre original
Yo uso el primero: sin duplicados y fácil de gestionar por fecha.
Importante: no pongas / al inicio. Escribe {year}/{month}/... directamente. Con / al inicio puede fallar la subida o la ruta.
Endpoint personalizado
Pega el endpoint S3 API guardado: https://xxxxx.r2.cloudflarestorage.com.
Incluye https://.
Dominio personalizado (Custom Domain)
Dominio de acceso público según lo que configuraste:
- Dominio propio:
https://img.tudominio.com - r2.dev: la Public Bucket URL del bucket (p. ej.
https://pub-xxxxx.r2.dev)
Define el enlace final de la imagen; debe ser correcto.
Otros parámetros
- Región: cualquier valor, p. ej.
autoous-east-1; R2 no lo usa - Método de subida: Path Style
Paso 3: Probar la subida
No uses en producción sin probar.
- Guarda la configuración
- Marca como almacenamiento predeterminado
- Zona de subida
- Arrastra una imagen de prueba o elige archivo
Si todo está bien, en segundos verás éxito y el enlace en el portapapeles.
Comprueba el enlace: ábrelo en el navegador. Si ves la imagen, ¡configuración correcta!
Errores habituales
Si falla, revisa:
-
Access Denied o 403
- Claves API correctas (no invertidas)
- Token con permiso de lectura y escritura
- Nombre del bucket correcto
-
Sube pero no se abre
- Acceso público activo (r2.dev o dominio personalizado)
- Dominio personalizado con
https:// - Espera propagación DNS
-
Subida lenta o timeout
- Red (R2 está en el extranjero)
- Imagen muy grande: comprímela (PicList incluye compresión)
-
Ruta incorrecta o carpetas raras
- Quita
/al inicio de la ruta - Revisa el formato de la ruta
- Quita
La primera vez invertí ID y clave secreta; tardé un rato en verlo. La mayoría de fallos son parámetros mal puestos.
Optimización y trucos avanzados
Con lo básico ya funciona. Para más estabilidad, velocidad y tranquilidad, conviene estos ajustes.
Estrategia de caché (muy recomendable)
Con dominio personalizado, configura reglas de caché. Tres beneficios:
- Menos peticiones a R2, dentro de la cuota gratuita
- Carga más rápida (respuesta desde caché CDN)
- Menos riesgo de abuso de tráfico
Cómo configurarlo:
- Consola Cloudflare → tu dominio
- Reglas → Page Rules o Cache Rules
- Nueva regla para
img.tudominio.com/*(tu dominio) - Ajustes:
- Nivel de caché: cachear todo
- TTL edge: 1 mes a 1 año (recomiendo 6 meses)
- TTL navegador: 1 mes
La primera visita lee de R2; las siguientes salen de la caché CDN y casi no consumen lecturas de R2.
Yo uso 6 meses de caché; en meses reales, unas miles de peticiones a R2, muy dentro de la cuota.
Aceleración desde China (opcional)
La CDN de Cloudflare en China es irregular: a veces bien, a veces lento. Si tu audiencia es sobre todo china, puedes valorar:
Opción 1: Tencent EdgeOne
CDN internacional de Tencent, gratis y sin registro de dominio, para acelerar R2.
- Ventaja: rápido en China, cuota gratuita suficiente
- Inconveniente: otra cuenta Tencent, configuración un poco más compleja
Opción 2: WebP Cloud
Servicio de proxy y optimización de imágenes; convierte a WebP y cachea.
- Ventaja: compresión automática, ahorra tráfico
- Inconveniente: límite de peticiones; de pago al superar
Opción 3: División China/extranjero
Con rclone sincronizas R2 a una nube china (Tencent COS): usuarios en China ven la nube local, el resto R2.
- Ventaja: rápido en ambos lados
- Inconveniente: más técnico y más mantenimiento
Yo uso lo más simple: dominio personalizado + caché. No es lo más rápido en China (1-3 s), pero basta para un blog personal. Si la velocidad es crítica, valora las opciones anteriores.
Seguridad y protección
Tras montar el alojamiento, evita el abuso.
Desactivar acceso r2.dev
Si ya usas dominio personalizado, cierra el acceso público por r2.dev. Si no, alguien puede saltarse antihotlink u otras reglas.
Bucket → R2.dev subdomain → Disallow Access, escribe disallow y confirma.
Antihotlink
Con WAF de Cloudflare puedes limitar quién enlaza tus imágenes.
Configuración básica:
- Consola → Security → WAF
- Crear regla personalizada
- Condición: Referer no contiene
tublog.com - Acción: Block o Challenge
Así no pueden usar tus enlaces en otros sitios.
Monitorizar el uso
Revisa el uso de R2 para evitar superar la cuota.
En la consola verás:
- Espacio usado
- Peticiones mensuales (Clase A y B)
Si el uso crece de golpe, comprueba si hay abuso de tráfico.
Conclusión
Con esto termina el montaje del alojamiento en R2.
Resumen de lo hecho:
- Registrar y activar Cloudflare R2 con 10 GB gratis
- Crear bucket y acceso público (dominio personalizado o r2.dev)
- Generar token API para PicGo
- Instalar y configurar PicGo con subida en un clic
- Caché y seguridad para mayor estabilidad
A partir de ahora no te preocupas de borrados, cierres o cargos inesperados. Al escribir, arrastras la imagen a PicGo, sube, copias el enlace al Markdown y listo.
Montar R2 fue una de las mejores decisiones de los últimos dos años. La primera configuración costó tiempo (sobre todo por tropiezos), pero después es muy tranquilo. Llevo más de medio año, más de 500 imágenes, sin pagar nada ni fallos.
Si el alojamiento de imágenes te da guerra, prueba R2 siguiendo este artículo: 30 minutos. Si algo falla, casi siempre es un parámetro mal puesto; revísalo con calma.
Último aviso: guarda bien las claves API; si reconfiguras o cambias de PC, las reutilizas sin crear otro token.
¡Monta ya tu alojamiento gratuito! Si tienes dudas, comenta y responderé cuando pueda.
FAQ
¿Cuál es la cuota gratuita de Cloudflare R2?
• 10 GB de almacenamiento
• 1 millón de subidas al mes (operaciones Clase A)
• 10 millones de lecturas al mes (operaciones Clase B)
• Tráfico de salida completamente gratuito
Para un blog personal con 500 imágenes, ocupas menos de 2 GB: te alcanza para varios años.
Costes al superar la cuota:
• Almacenamiento: 0,015 USD/GB/mes (1 GB cuesta unos 0,1 CNY al mes)
• Operaciones: Clase A 4,50 USD/millón, Clase B 0,36 USD/millón
¿Qué ventajas tiene R2 frente a otras soluciones de alojamiento de imágenes?
1) Tráfico de salida totalmente gratuito (frente a S3, que cobra varios céntimos o yuanes por GB): es la mayor ventaja
2) Respaldo de un gran proveedor, estable y fiable (Cloudflare es uno de los mayores CDN del mundo)
3) Compatible con la API S3 y migrable (puedes moverte a otros servicios con protocolo S3)
4) Sin registro de dominio obligatorio, listo para usar (servicio internacional, listo en 30 minutos)
5) Distribución global por CDN (más de 100 países y 275 ciudades)
Problemas de otras opciones:
• GitHub + jsDelivr: bloqueado en China
• Alojamientos públicos gratuitos: inestables
• Nubes domésticas en China: requieren registro de dominio
¿Cómo configurar el acceso público en R2?
• En la configuración del bucket, busca el subdominio R2.dev
• Haz clic en Permitir acceso e introduce allow para confirmar
• Ojo: r2.dev tiene límite de velocidad; en producción debes usar un dominio personalizado
Opción 2 (recomendada en producción):
• Requisito: el dominio ya delegado en Cloudflare
• En Dominios personalizados, introduce un subdominio (p. ej. img.tudominio.com)
• Cloudflare añade el CNAME automáticamente; espera a que el DNS se propague
¿Cómo configurar PicGo para conectarse a R2?
1. Instala PicGo y el plugin S3 (picgo-plugin-s3 o s3-lls)
2. En Configuración de almacenamiento → Amazon S3
Parámetros clave:
• ID de clave de acceso (Access Key ID)
• Clave secreta (Secret Access Key)
• Bucket (Bucket Name)
• Ruta de archivo (p. ej. {year}/{month}/{md5}.{extName}; no empieces con /)
• Endpoint personalizado (con https://)
• Dominio personalizado (tu dominio o la URL r2.dev)
• Región (cualquier valor, p. ej. auto)
• Método de subida (estilo de ruta)
Tras una subida de prueba exitosa, ya puedes usarlo.
¿Cómo optimizar el rendimiento y el costo del alojamiento en R2?
1) Reglas de caché:
• Consola Cloudflare → Reglas → Reglas de caché
• Coincidencia img.tudominio.com/*
• TTL de caché en el edge: 6 meses; en el navegador: 1 mes
• En pruebas, las peticiones bajaron de decenas de miles a unos miles
2) Desactivar el acceso r2.dev (si ya usas dominio personalizado)
3) Regla WAF antihotlink (bloquear si Referer no incluye tublog.com)
4) Monitorizar el uso con regularidad para evitar superar la cuota
Para acelerar el acceso desde China, opciones como Tencent EdgeOne o WebP Cloud.
¿Hay que vincular una tarjeta al activar R2? ¿Cobrarán automáticamente?
Activar R2 exige vincular tarjeta de crédito o PayPal, pero solo es para verificar la identidad; no hay cargo automático.
La cuota gratuita de Cloudflare es realmente gratuita: solo pagas si superas la cuota y confirmas el cobro.
Puedes vincular:
• Tarjeta de crédito con soporte de divisas (Visa, MasterCard)
• PayPal (también en China)
• Tarjeta virtual
En mi caso, tras medio año de uso no he pagado ni un céntimo.
¿Cómo resolver los errores habituales al subir con PicGo?
1) Access Denied o error 403:
• Comprueba que las claves API estén bien (no las inviertas)
• Comprueba que el token tenga permiso de lectura y escritura de objetos
• Comprueba el nombre del bucket
2) La imagen sube pero no se puede abrir:
• Comprueba que el acceso público esté activo (r2.dev o dominio personalizado)
• Comprueba el dominio personalizado (debe llevar https://)
• Espera a que el DNS se propague
3) Subida lenta o timeout:
• Problema de red (R2 está en el extranjero)
• Si la imagen es muy grande, comprímela antes
4) Error en la ruta del archivo:
• Comprueba si la ruta empieza con /; quítalo
La mayoría de problemas son parámetros mal rellenados: revísalos con calma.
14 min de lectura · Publicado el: 30 nov 2025 · Actualizado el: 21 ago 2026
Cloudflare Full Stack
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
Introducción a Cloudflare Tunnel: accede de forma segura a servicios en red local sin IP pública
Guía paso a paso para usar Cloudflare Tunnel y lograr acceso remoto gratuito a tu red local: sin IP pública ni servidor en la nube, configuración en 30 minutos, HTTPS y protección DDoS incluidos. Compatible con HTTP, SSH, RDP y más. Ideal para desarrolladores individuales y usuarios de servidores domésticos.
Parte 12 de 23
Siguiente
¿Cuotas de tráfico S3 de miles al mes? Migra a R2 en 3 pasos y ahorra un 90% (casos reales)
¿Las cuotas de tráfico de S3 disparan tu factura? Te guiamos paso a paso para migrar a Cloudflare R2 con cero cuota de egreso y ahorrar más de $10,896 al año. Incluye comparativa de 3 métodos de migración, pruebas de compatibilidad API y tutorial de 30 minutos con cálculo de costes reales.
Parte 14 de 23



Comentarios
Inicia sesión con GitHub para dejar un comentario