Tools
← Todas as ferramentas

Compartilhamento Temporário de Arquivo

5 min–1 h · 10 MB máx. · compatível AI Agent

Solte um arquivo (10 MB máx.). Escolha uma vida útil entre 5 minutos e 1 hora e o envio devolve uma URL pública que expira sozinha. Assinantes Plus podem mandar lotes de até 20 arquivos. Cada linha de resultado inclui uma variante agent prompt para modelos de IA que sabem baixar URLs mas não o fazem por conta própria — ela os instrui a baixar e ler o arquivo. Chutar URLs rende 30 dias de bloqueio ao IP de origem.
Duração

Como funciona

Cada arquivo vai para um bucket Cloudflare R2 pelo endpoint de Pages Functions em /api/upload, junto com a vida útil escolhida. O objeto é gravado com um carimbo expiresAt próprio; /f/<id> o lê a cada download e devolve 410 Gone quando vence. Uma regra de ciclo de vida do R2 de 1 dia remove fisicamente o objeto como retaguarda.

Projetado para agentes de IA

Muitos agentes de modelos de linguagem sabem chamar fetch ou uma ferramenta de navegação, mas não baixam por iniciativa própria uma URL colada — tratam-na como texto opaco. A variante Agent prompt de cada linha antepõe uma instrução curta (“Baixe e leia este arquivo”) no idioma ativo, para o modelo ver uma diretiva clara ao lado da URL e usar sua ferramenta de download.

Anti-enumeration

Os IDs das URLs têm 16 caracteres base62 (~95 bits de entropia), então a chance de adivinhar um link vivo é essencialmente zero. Além disso, cada 404/410 de /f/* incrementa um contador de erros por IP no KV. Após 10 erros o IP entra numa lista de banimento com TTL de 30 dias e fica bloqueado de /f/* e de /api/upload até o marcador expirar.

O que posso enviar?

Qualquer arquivo, qualquer tamanho até 10 MB. O tipo não é restrito porque os downloads sempre saem com Content-Disposition: attachment e X-Content-Type-Options: nosniff — o navegador salva o arquivo em vez de renderizá-lo, então um HTML/SVG/JS enviado não roda como script nesta origem.

Limites e taxa

Privacidade

Trate cada URL como compartilhada com quem tiver o link, não como armazenamento privado. O id é impossível de adivinhar na prática e a lista de banimento barra força bruta casual, mas qualquer pessoa com a URL pode baixar o arquivo até expirar. Fazemos hash dos IPs (SHA-256) antes de usá-los como chave KV, nunca os persistimos no objeto R2 e servimos cada download com noindex, nofollow.