>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
JavaScript

Comment envoyer un fichier sur une centaines d'hébergeurs en un clic sans intermédiaire

Vous avez probablement déjà eu à partager une archive lourde, une build logicielle ou une vidéo sur plusieurs hébergeurs. Le faire manuellement via des onglets de navigateur est une vraie torture. D'abord vous attendez l'envoi vers un service, puis vous copiez le lien, ouvrez le deuxième, subissez un captcha, et ainsi de suite en cercle.

Habituellement dans ces situations, les gens se tournent vers des multi-envois web comme Mirrored.to ou MultiUp. Mais ils ont leurs propres problèmes : des limites de taille de fichier strictes pour les utilisateurs gratuits, une inscription obligatoire pour la moitié des fonctionnalités, des publicités intrusives, et surtout — vos fichiers vont d'abord sur le serveur intermédiaire de quelqu'un d'autre.

PolyUploader banner

Récemment je suis tombé sur un projet intéressant appelé PolyUploader. C'est une application de bureau open source qui prend un fichier depuis votre disque (ou le télécharge via un lien direct) et l'envoie simultanément vers les hébergeurs sélectionnés directement depuis votre ordinateur.

Ce que PolyUploader peut faire

La fonctionnalité principale du programme est simple : vous sélectionnez un fichier, cochez les services souhaités, et lancez le processus. La liste des hébergeurs pris en charge est impressionnante — il y en a 133 dans le tableau du dépôt. Parmi eux se trouvent des services populaires comme Gofile, 1fichier, Turbobit, Catbox et Pixeldrain, ainsi que des hébergeurs vidéo spécialisés comme DoodStream, StreamWish ou Voe.

PolyUploader showcase

Voici plusieurs choses pratiques que l'auteur a intégrées dans l'architecture :

  • Envoi sans comptes. Sur 133 hébergeurs, 96 fonctionnent en mode entièrement anonyme. Pas d'inscriptions ni de connexions, on appuie sur le bouton — on obtient le lien.
  • Connectez vos propres clés API. Si vous avez un compte premium ou personnel sur 1fichier, KrakenFiles ou Nitroflare, vous pouvez entrer les clés dans les paramètres. Ensuite, l'envoi va vers votre profil personnel avec vos propres limites.
  • Protection des liens et lots. Après l'envoi, l'application collecte les liens reçus dans une seule liste. Vous pouvez les empaqueter en un seul lien propre ou les chiffrer via PrivateBin, Cryptgeon, SafeLinking ou Filecrypt.
  • Profils d'envoi. Pour éviter de cocher des dizaines de cases à chaque fois, des ensembles d'hébergeurs sont sauvegardés comme préréglages séparés pour différentes tâches.
  • Historique local. PolyUploader se souvient où et quand vous avez envoyé des fichiers, affiche l'expiration approximative du lien et fournit un bouton de suppression rapide si l'hébergeur le supporte.
Captures d'écran de l'interface single_upload multiple_upload history api_keys profiles settings_windows_context_menu

Comment ça fonctionne en coulisses

Le projet est construit avec Tauri. L'interface utilisateur est faite avec une pile web standard utilisant Tailwind CSS, tandis que la logique système, le réseau et les opérations sur les fichiers s'exécutent dans un backend Rust.

Grâce à cela, l'application est légère et utilise un minimum de RAM comparée aux alternatives basées sur Electron.

La solution d'ingénierie la plus intéressante ici est liée aux limitations du moteur de navigateur. Quand l'interface web envoie des requêtes directement vers une centaines de sites externes, elle se heurte immédiatement à des erreurs CORS et des problèmes de cookies inter-sites.

L'auteur a résolu cela de manière élégante. Un proxy HTTP local basé sur la bibliothèque warp-cors est intégré dans le backend Rust. Quand l'application démarre, un serveur léger se lance sur le port 61337.

Le frontend envoie simplement les requêtes via l'adresse locale :

Le proxy transmet le trafic vers le site cible, substitue les en-têtes nécessaires et retourne la réponse à l'interface. Pas besoin de contourner les politiques de sécurité du navigateur.

L'autre côté de la médaille

L'auteur admet honnêtement dans le README qu'il développe le projet seul pendant son temps libre en dehors de ses études. Et maintenir plus d'une centaines d'hébergeurs en état de marche est un travail éprouvant.

De nombreux sites n'ont pas d'API officielle. Pour envoyer un fichier dessus, il faut émuler le comportement du navigateur, analyser les scripts de formulaires et convertir les requêtes cURL en code. Dès qu'un service change sa mise en page ou sa protection, l'envoi se casse jusqu'au prochain correctif.

De plus, l'application ne peut actuellement pas gérer un lot de différents fichiers locaux en file d'attente pour un traitement par lots. Vous prenez un fichier spécifique et le répliquez sur des dizaines de miroirs.

Le projet inclut une télémétrie anonyme. L'application envoie seulement le nom de l'hébergeur et la date d'envoi au serveur de l'auteur pour des statistiques agrégées, sans chemins de fichiers ni liens finaux. Si vous êtes fondamentalement contre l'activité réseau des logiciels, le code de l'API est aussi open source sur GitHub, vous pouvez donc vérifier la logique vous-même.

Comment l'essayer

Le moyen le plus simple est de consulter la section Releases du dépôt. Il y a des paquets pré-construits pour Windows (installeur), Linux (AppImage, paquets deb, rpm) et macOS (image dmg).

Si vous voulez construire le binaire vous-même, vous aurez besoin de Rust et du CLI Tauri installé :

L'installeur fini apparaîtra dans le répertoire src-tauri/target/release/bundle.

Qui le trouvera utile

Le projet trouvera sa place chez ceux qui envoient régulièrement des versions logicielles, des dumps, des fichiers médias ou des sauvegardes et veulent des miroirs fiables en cas de panne du stockage principal.

PolyUploader élimine le besoin de faire confiance à vos données à des miroirs web tiers et fait gagner beaucoup de temps de routine. Si le projet a attiré votre attention, donnez une étoile à l'auteur sur GitHub — la maintenance en solo d'une telle base d'hébergeurs demande vraiment une patience considérable.

Projets similaires