Tools
← Все инструменты

Временный файлообмен

5 мин–1 ч · 10 МБ макс. · совместимо с AI-агентами

Бросьте файл (10 МБ макс.). Выберите срок жизни от 5 минут до 1 часа — и загрузка вернёт публичный URL, который истечёт сам. Подписчики Plus могут загружать пакетами до 20 файлов. Каждая строка результата содержит вариант agent prompt для ИИ-моделей, которые умеют скачивать URL, но сами не станут — он велит им скачать и прочитать файл. За перебор URL исходный IP получает бан на 30 дней.
Срок

Как это работает

Каждый файл уходит в бакет Cloudflare R2 через эндпоинт Pages Functions /api/upload вместе с выбранным сроком жизни. Объект записывается с собственной меткой expiresAt; /f/<id> читает её при каждом скачивании и возвращает 410 Gone, когда срок вышел. Суточное lifecycle-правило R2 физически удаляет объект как страховка.

Сделано для AI-агентов

Многие агенты языковых моделей умеют звать fetch или инструмент браузинга, но не станут сами скачивать вставленный URL — для них это непрозрачная строка. Вариант Agent prompt в каждой строке результата ставит перед ссылкой короткую инструкцию («Скачай и прочитай этот файл») на активном языке — модель видит ясную директиву рядом с URL и тянется к своему инструменту скачивания.

Anti-enumeration

Идентификаторы URL — 16 символов base62 (~95 бит энтропии), так что шанс угадать живую ссылку практически нулевой. Вдобавок каждый 404/410 на /f/* увеличивает счётчик промахов на IP в KV. После 10 промахов IP попадает в бан-лист с TTL 30 дней и лишается доступа и к /f/*, и к /api/upload, пока метка не истечёт.

Что можно загружать?

Любой файл, любой размер до 10 МБ. Тип не ограничен, потому что скачивания всегда отдаются с Content-Disposition: attachment и X-Content-Type-Options: nosniff — браузер сохраняет файл вместо отрисовки, так что загруженный HTML/SVG/JS не выполнится скриптом на этом origin.

Лимиты и скорость

Конфиденциальность

Считайте каждый URL доступным всем, у кого есть ссылка, а не приватным хранилищем. Идентификатор на практике не угадывается, бан-лист останавливает случайный перебор, но любой, с кем вы поделились ссылкой, может скачивать файл до истечения срока. IP мы хешируем (SHA-256) прежде чем использовать как ключ KV, никогда не сохраняем на объекте R2 и отдаём каждое скачивание с noindex, nofollow.