>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
JavaScript

Dateien mit einem Klick auf über hundert File-Hoster hochladen – ohne Zwischenhändler

Ihr habt wahrscheinlich schon mal schwere Archive, Software-Builds oder Videos auf mehreren File-Hostern teilen müssen. Das manuell über Browser-Tabs zu machen, ist purer Stress. Erst wartet ihr auf den Upload bei einem Dienst, dann kopiert ihr den Link, öffnet den nächsten, bekommt ein Captcha – und so geht das im Kreis.

In solchen Situationen greifen die meisten zu Web-Multi-Uploadern wie Mirrored.to oder MultiUp. Aber die haben ihre eigenen Probleme: strikte Dateigrößenlimits für Free-Nutzer, Pflichtregistrierung für die Hälfte der Funktionen, aufdringliche Werbung, und das Wichtigste – eure Dateien fliegen zuerst auf einen fremden Zwischenserver.

PolyUploader banner

Neulich bin ich auf ein interessantes Projekt namens PolyUploader gestoßen. Dabei handelt es sich um eine Open-Source-Desktop-Anwendung, die eine Datei von eurer Festplatte nimmt (oder sie per Direktlink herunterlädt) und gleichzeitig auf ausgewählte Hoster direkt von eurem Rechner aus hochlädt.

Was PolyUploader kann

Das Hauptfeature des Programms ist simpel: Datei auswählen, gewünschte Dienste anhaken und den Prozess starten. Die Liste der unterstützten Hoster ist beeindruckend – in der Repository-Tabelle sind es 133 Stück. Darunter sind beliebte Dienste wie Gofile, 1fichier, Turbobit, Catbox und Pixeldrain, aber auch spezialisierte Video-Hoster wie DoodStream, StreamWish oder Voe.

PolyUploader showcase

Hier sind mehrere praktische Funktionen, die der Autor in die Architektur eingebaut hat:

  • Upload ohne Accounts. Von den 133 Hostern funktionieren 96 im vollständig anonymen Modus. Keine Registrierung oder Anmeldung, Knopf gedrückt – Link erhalten.
  • Eigene API-Schlüssel einbinden. Wenn ihr einen Premium- oder persönlichen Account bei 1fichier, KrakenFiles oder Nitroflare habt, könnt ihr die Schlüssel in den Einstellungen hinterlegen. Dann landet der Upload in eurem persönlichen Profil mit euren eigenen Limits.
  • Link-Schutz und Bündelung. Nach dem Upload sammelt die Anwendung die erhaltenen Links in einer einzigen Liste. Ihr könnt sie zu einem sauberen Link zusammenfassen oder über PrivateBin, Cryptgeon, SafeLinking oder Filecrypt verschlüsseln.
  • Upload-Profile. Um nicht jedes Mal dutzende Checkboxen durchklicken zu müssen, werden Host-Sets als separate Presets für verschiedene Aufgaben gespeichert.
  • Lokaler Verlauf. PolyUploader merkt sich, wohin und wann ihr Dateien hochgeladen habt, zeigt die ungefähre Link-Gültigkeit und bietet einen Schnell-Löschen-Button, falls der Hoster das unterstützt.
Interface screenshots single_upload multiple_upload history api_keys profiles settings_windows_context_menu

Wie es unter der Haube funktioniert

Das Projekt basiert auf Tauri. Das User Interface ist mit einem Standard-Web-Stack unter Verwendung von Tailwind CSS umgesetzt, während die Systemlogik, Netzwerkoperationen und Dateiverarbeitung in einem Rust-Backend laufen.

Dadurch ist die Anwendung leichtgewichtig und verbraucht im Vergleich zu Electron-basierten Alternativen deutlich weniger RAM.

Die interessanteste technische Lösung hier hängt mit den Einschränkungen der Browser-Engine zusammen. Wenn die Web-Oberfläche Anfragen direkt an hundert externe Seiten sendet, stößt sie sofort auf CORS-Fehler und plattformübergreifende Cookie-Probleme.

Der Autor hat das elegant gelöst. Ein lokaler HTTP-Proxy basierend auf der warp-cors-Bibliothek ist im Rust-Backend eingebettet. Wenn die Anwendung startet, wird ein leichtgewichtiger Server auf Port 61337 hochgefahren.

// Запуск прокси 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));
  });
}

Das Frontend sendet die Anfragen einfach über die lokale Adresse:

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

Der Proxy leitet den Traffic zum Zielhost weiter, ersetzt die notwendigen Header und gibt die Antwort an die Oberfläche zurück. Kein Herumdoktern an Browser-Sicherheitsrichtlinien.

Die Kehrseite der Medaille

Der Autor gibt im README ehrlich zu, dass er das Projekt in seiner Freizeit neben dem Studium alleine entwickelt. Und mehr als hundert Hoster funktionsfähig zu halten, ist eine zermürbende Arbeit.

Viele Seiten haben keine offizielle API. Um eine Datei dort hochzuladen, muss man das Browser-Verhalten emulieren, Formular-Scripts parsen und cURL-Requests in Code umwandeln. Sobald ein Dienst sein Layout oder seinen Schutz ändert, funktioniert der Upload nicht mehr, bis zum nächsten Patch.

Außerdem kann die Anwendung derzeit keine Stapelverarbeitung verschiedener lokaler Dateien in einer Warteschlange verarbeiten. Ihr nehmt eine bestimmte Datei und repliziert sie auf dutzende Spiegel.

Das Projekt enthält anonyme Telemetrie. Die Anwendung sendet nur den Host-Namen und das Upload-Datum an den Server des Autors für aggregierte Statistiken, ohne Dateipfade oder finale Links. Wenn ihr grundsätzlich gegen Netzwerkaktivität von Software seid, ist der API-Code ebenfalls offen auf GitHub, sodass ihr die Logik leicht selbst überprüfen könnt.

Wie ihr es ausprobieren könnt

Der einfachste Weg ist, den Releases-Bereich des Repositories zu checken. Dort gibt es vorgefertigte Pakete für Windows (Installer), Linux (AppImage, deb-, rpm-Pakete) und macOS (dmg-Image).

Wenn ihr das Binary selbst bauen wollt, braucht ihr Rust und die Tauri CLI installiert:

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

Der fertige Installer erscheint im src-tauri/target/release/bundle-Verzeichnis.

Für wen es nützlich ist

Das Projekt ist perfekt für alle, die regelmäßig Software-Releases, Dumps, Mediendateien oder Backups hochladen und zuverlässige Spiegel haben möchten, falls der Hauptspeicher ausfällt.

PolyUploader eliminiert die Notwendigkeit, eure Daten Drittanbieter-Web-Mirrors anzuvertrauen, und spart eine Menge Routinearbeit. Wenn das Projekt euer Interesse geweckt hat, gebt dem Autor einen Star auf GitHub – die alleinige Pflege einer solchen Host-Datenbank erfordert wirklich enorm viel Geduld.

Ähnliche Projekte