Как залить файл на сотню файлообменников в один клик без посредников

16 авг 2026
373
25
4
1 месяц

Вам наверняка приходилось расшаривать тяжелый архив, сборку софта или видео сразу на несколько файловых хостингов. Делать это вручную через браузерные вкладки — сущее мучение. Сначала ждешь загрузку на один сервис, потом копируешь ссылку, открываешь второй, получаешь капчу, и так по кругу.

Обычно в таких ситуациях вспоминают веб-мультиаплоадеры вроде Mirrored.to или MultiUp. Но у них свои проблемы: жесткие лимиты на размер файлов для бесплатных пользователей, обязательная регистрация для половины функций, навязчивая реклама и главное — ваши файлы сначала улетают на чужой промежуточный сервер.

PolyUploader banner

Недавно наткнулся на интересный проект PolyUploader. Это открытое десктопное приложение, которое берет файл с вашего диска (или качает по прямой ссылке) и параллельно пушит его сразу на выбранные хостинги прямо с вашего компьютера.

Что умеет PolyUploader

Главная фишка программы простая: вы выбираете файл, отмечаете галочками нужные сервисы и запускаете процесс. Список поддерживаемых хостов впечатляет — в таблице репозитория их 133 штуки. Среди них есть как популярные Gofile, 1fichier, Turbobit, Catbox и Pixeldrain, так и специализированные видеохостинги вроде DoodStream, StreamWish или Voe.

PolyUploader showcase

Вот несколько практичных вещей, которые автор заложил в архитектуру:

Реклама
  • Загрузка без аккаунтов. Из 133 хостингов 96 работают в полностью анонимном режиме. Никаких регистраций и логинов, нажал кнопку — получил ссылку.
  • Подключение своих API-ключей. Если у вас есть премиум или личный кабинет на 1fichier, KrakenFiles или Nitroflare, можно вбить ключи в настройках. Тогда загрузка пойдет в ваш личный профиль с вашими лимитами.
  • Защита ссылок и бандлы. После загрузки приложение собирает полученные ссылки в единый список. Его можно упаковать в одну красивую ссылку или сразу зашифровать через PrivateBin, Cryptgeon, SafeLinking или Filecrypt.
  • Профили загрузки. Чтобы каждый раз не кликать по десяткам чекбоксов, наборы хостингов сохраняются в отдельные пресеты под разные задачи.
  • Локальная история. PolyUploader запоминает, куда и когда вы заливали файлы, показывает примерный срок жизни ссылки и дает кнопку быстрого удаления, если сам хостинг такое поддерживает.
Скриншоты интерфейса single_upload multiple_upload history api_keys profiles settings_windows_context_menu

Как это устроено под капотом

Проект написан на базе Tauri. Пользовательский интерфейс сделан на обычном веб-стеке с Tailwind CSS, а системная логика, работа с сетью и файлами крутится в бэкенде на Rust.

Из-за этого приложение весит немного и расходует минимум оперативной памяти по сравнению с аналогами на Electron.

Самое любопытное инженерное решение здесь связано с ограничениями браузерного движка. Когда веб-интерфейс шлет запросы напрямую к сотне сторонних сайтов, он моментально ловит ошибки CORS и проблемы с межсайтовыми cookie.

Автор обошел эту проблему элегантно. Внутрь Rust-бэкенда встроен локальный HTTP-прокси на базе библиотеки warp-cors. При старте приложения на порту 61337 поднимается легковесный сервер.

// Запуск прокси warp-cors в фоновом рантайме
use tokio::runtime::Builder;
use warp_cors::app::{Config, run};

fn main() {
  std::thread::spawn(|| {
      let rt = Builder::new_multi_thread()
          .enable_all()
          .build()
          .unwrap();
      let cfg = Config { host: "127.0.0.1".into(), port: 61337 };
      rt.block_on(run(cfg));
  });
}

Фронтенд просто отправляет запросы через локальный адрес:

const proxy = "http://127.0.0.1:61337/";
upload_to_host([
  proxy + "https://upload.gofile.io/uploadfile/",
  "POST",
  sent_data_form
]);

Прокси пересылает трафик на целевой сайт, подменяет нужные заголовки и возвращает ответ интерфейсу. Никаких танцев с браузерными политиками безопасности.

Обратная сторона медали

Автор честно признается в README, что разрабатывает проект в одиночку в свободное от учебы время. А поддержка более чем сотни хостингов в актуальном состоянии — адский труд.

Многие сайты не имеют официального API. Чтобы загрузить на них файл, приходится эмулировать поведение браузера, разбирать скрипты форм и переводить cURL-запросы в код. Как только сервис меняет верстку или защиту, загрузка отваливается до следующего патча.

Кроме того, в приложении пока нельзя закинуть сразу пачку разных локальных файлов для пакетной обработки в очередь. Вы берете один конкретный файл и размножаете его по десяткам зеркал.

В проекте есть анонимная телеметрия. Приложение отправляет на сервер автора только название хоста и дату загрузки для сбора общей статистики, без путей к файлам и без итоговых ссылок. Если вы принципиально против сетевой активности софта, код API тоже открыт на GitHub, логику легко проверить самостоятельно.

Как попробовать в деле

Самый простой путь — заглянуть в раздел Releases репозитория. Там лежат готовые сборки под Windows (установщик), Linux (пакеты AppImage, deb, rpm) и macOS (dmg-образ).

Если хотите собрать бинарник самостоятельно, понадобятся установленный Rust и CLI для Tauri:

git clone https://github.com/spel987/PolyUploader.git
cd PolyUploader
cargo install tauri-cli
cargo tauri build

Готовый установщик появится в директории src-tauri/target/release/bundle.

Кому пригодится

Проект найдет свое место у тех, кто регулярно выкладывает релизы программ, дампы, медиафайлы или бэкапы и хочет иметь надежные зеркала на случай падения основного хранилища.

PolyUploader избавляет от необходимости доверять свои данные сторонним веб-зеркалам и экономит кучу рутинного времени. Если проект вам приглянулся, поставьте автору звезду на GitHub, сольная поддержка такой базы хостов действительно требует колоссального терпения.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.