>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
JavaScript

Hoe upload je een bestand naar honderd filehosts met één klik zonder tussenpersonen

Je hebt waarschijnlijk ooit een zwaar archief, softwarebuild of video moeten delen via meerdere filehosts. Dit handmatig doen via browsertabs is pure marteling. Eerst wacht je tot het uploaden naar de ene service klaar is, dan kopieer je de link, open je de tweede, krijg je een captcha, en zo ga je in cirkels verder.

Meestal schakelen mensen in zulke situaties over naar web multi-uploaders zoals Mirrored.to of MultiUp. Maar die hebben hun eigen problemen: strikte bestandslimieten voor gratis gebruikers, verplichte registratie voor de helft van de functies, opdringerige advertenties, en het belangrijkste — je bestanden vliegen eerst naar iemand anders zijn tussenliggende server.

PolyUploader banner

Onlangs stuitte ik op een interessant project genaamd PolyUploader. Het is een open desktop-applicatie die een bestand van je schijf pakt (of downloadt via een directe link) en tegelijkertijd naar geselecteerde hosts pusht, rechtstreeks vanaf je computer.

Wat PolyUploader Kan Doen

De hoofdfunctie van het programma is simpel: je selecteert een bestand, vinkt de gewenste services aan, en start het proces. De lijst met ondersteunde hosts is indrukwekkend — er zijn er 133 in de repository-tabel. Daaronder vallen populaire services zoals Gofile, 1fichier, Turbobit, Catbox en Pixeldrain, maar ook gespecialiseerde videohosts zoals DoodStream, StreamWish of Voe.

PolyUploader showcase

Hier zijn verschillende praktische dingen die de auteur in de architectuur heeft ingebouwd:

  • Uploaden zonder accounts. Van de 133 hosts werken er 96 in volledig anonieme modus. Geen registraties of logins, knop ingedrukt — link gekregen.
  • Verbind je eigen API-sleutels. Als je een premium- of persoonlijk account hebt op 1fichier, KrakenFiles of Nitroflare, kun je de sleutels in de instellingen invoeren. Dan gaat de upload naar je persoonlijke profiel met je eigen limieten.
  • Linkbescherming en bundels. Na het uploaden verzamelt de applicatie de ontvangen links in één lijst. Je kunt het verpakken in één schone link of het versleutelen via PrivateBin, Cryptgeon, SafeLinking of Filecrypt.
  • Uploadprofielen. Om niet elke keer door tientallen selectievakjes te hoeven klikken, worden sets van hosts opgeslagen als aparte presets voor verschillende taken.
  • Lokale geschiedenis. PolyUploader onthoudt waar en wanneer je bestanden hebt geüpload, toont de geschatte linkvervaldatum, en biedt een snelle verwijderknop als de host dit ondersteunt.
Interface screenshots single_upload multiple_upload history api_keys profiles settings_windows_context_menu

Hoe Het Onder De Motorkap Werkt

Het project is gebouwd op Tauri. De gebruikersinterface is gemaakt met een standaard webstack met Tailwind CSS, terwijl systeemlogica, netwerken en bestandsoperaties draaien in een Rust-backend.

Hierdoor is de applicatie lichtgewicht en gebruikt minimaal RAM vergeleken met Electron-gebaseerde alternatieven.

De meest interessante technische oplossing hier heeft te maken met browser-engine beperkingen. Wanneer de webinterface verzoeken rechtstreeks naar honderd externe sites stuurt, stuit het onmiddellijk op CORS-fouten en cross-site cookie-problemen.

De auteur heeft dit elegant opgelost. Een lokale HTTP-proxy op basis van de warp-cors bibliotheek is ingebed in de Rust-backend. Wanneer de applicatie start, draait een lichtgewicht server op poort 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));
  });
}

De frontend stuurt simpelweg verzoeken via het lokale adres:

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

De proxy stuurt verkeer door naar de doelsite, substitueert de noodzakelijke headers, en retourneert de respons naar de interface. Geen gedoe met browsers beveiligingsbeleid.

De Keerzijde Van De Medaille

De auteur geeft eerlijk toe in de README dat ze het project solo ontwikkelt in hun vrije tijd buiten de studies. En meer dan honderd hosts werkend houden is zwaar werk.

Veel sites hebben geen officiële API. Om een bestand naar ze te uploaden, moet je browser-gedrag emuleren, formulierscripts parsen en cURL-verzoeken naar code converteren. Zodra een service zijn lay-out of bescherming wijzigt, breekt de upload tot de volgende patch.

Bovendien kan de applicatie momenteel geen batch van verschillende lokale bestanden verwerken die in de wachtrij staan voor batchverwerking. Je neemt één specifiek bestand en repliceert het naar tientallen mirrors.

Het project bevat anonieme telemetrie. De applicatie stuurt alleen de hostnaam en uploaddatum naar de server van de auteur voor geaggregeerde statistieken, zonder bestandspaden of definitieve links. Als je fundamenteel tegen netwerkactiviteit van software bent, is de API-code ook open op GitHub, dus je kunt de logica zelf gemakkelijk verifiëren.

Hoe Het Uit Te Proberen

De makkelijkste manier is om de Releases-sectie van de repository te bekijken. Er zijn voorgebouwde pakketten voor Windows (installer), Linux (AppImage, deb, rpm-pakketten), en macOS (dmg-image).

Als je de binary zelf wilt bouwen, heb je Rust en de Tauri CLI geïnstalleerd nodig:

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

De fertige installer verschijnt in de src-tauri/target/release/bundle directory.

Wie Zal Het Nuttig Vinden

Het project zal zijn plek vinden bij degenen die regelmatig software-releases, dumps, media-bestanden of back-ups uploaden en betrouwbare mirrors willen voor het geval de hoofdopslag uitvalt.

PolyUploader elimineert de noodzaak om je data te vertrouwen aan externe web-mirrors en bespaart een hoop routinematige tijd. Als het project je aandacht heeft getrokken, geef de auteur een ster op GitHub — solo-onderhoud van zo'n host-basis vereist echt enorm geduld.

Gerelateerde projecten