Compartir Archivo Temporal
5 min–1 h · 10 MB máx. · compatible AI Agent
Cómo funciona
Cada archivo se envía a un bucket de Cloudflare R2 a través del endpoint de Pages Functions en /api/upload, junto con la vida útil elegida. El objeto se escribe con una marca expiresAt propia; /f/<id> la lee en cada descarga y devuelve 410 Gone cuando vence. Una regla de ciclo de vida de R2 a 1 día elimina físicamente el objeto como red de seguridad.
Diseñado para agentes de IA
Muchos agentes de modelos de lenguaje pueden llamar a fetch o a una herramienta de navegación, pero no descargan proactivamente una URL pegada — la tratan como una cadena opaca. La variante Agent prompt de cada fila antepone una instrucción breve («Descarga y lee este archivo») en el idioma activo, de modo que el modelo ve una directiva clara junto a la URL y echa mano de su herramienta de descarga.
Anti-enumeration
Los ID de URL son 16 caracteres base62 (~95 bits de entropía), así que la probabilidad de adivinar un enlace vivo es prácticamente cero. Además, cada 404/410 de /f/* incrementa un contador de fallos por IP en KV. Tras 10 fallos la IP entra en una lista de bloqueo con TTL de 30 días y queda vetada tanto de /f/* como de /api/upload hasta que el marcador expire.
¿Qué puedo subir?
Cualquier archivo, cualquier tamaño hasta 10 MB. No se restringe el tipo porque las descargas se sirven siempre con Content-Disposition: attachment y X-Content-Type-Options: nosniff — el navegador guarda el archivo en vez de renderizarlo, así que un HTML/SVG/JS subido no puede ejecutarse como script en este origen.
Límites y velocidad
- Gratis: 1 archivo a la vez. Plus: hasta 20 archivos por lote.
- 10 MB por archivo (lo impone la Function de subida — el tope del frontend es mera cortesía).
- Vida útil: cualquier valor entre 5 minutos y 1 hora.
- Límite de subidas — anónimo: 10/min, 60/h, 160/día (por IP); con sesión: 10/min, 50/h, 200/día; Plus: 30/min, 200/h, 600/día (por cuenta, inmune a CGNAT).
- Cada ventana de límite (1m / 1h / 24h) se ancla en la subida que la abre — no en la medianoche UTC ni en ninguna zona horaria local. Siempre dispones del presupuesto completo de la ventana empieces cuando empieces.
- Cuando el cubo se acerca al techo del nivel gratuito, las subidas devuelven
503hasta que los archivos caducados liberen espacio — la recuperación es automática.
Privacidad
Trata cada URL como compartida con quien tenga el enlace, no como almacenamiento privado. El id es imposible de adivinar en la práctica y la lista de bloqueo frena la fuerza bruta casual, pero cualquiera con la URL puede descargar el archivo hasta que caduque. Hasheamos las IP (SHA-256) antes de usarlas como clave KV, nunca las persistimos en el objeto R2 y servimos cada descarga con noindex, nofollow.