Uncentralized Downloader

July 23, 2007

Quand on a voulu faire des téléchargements directs sur TGS, nous avons été obligé d’utiliser free comme hébergeur, car je n’ai pas assez de bande passante ni de place sur mon serveur pour héberger de la musique. Mais on s’est heurté à divers obstacles :

  • Free est plutôt limité dans la liberté de configuration du serveur et les possibilités de PHP
  • Des serveurs se retrouvent hors ligne on ne sait pas bien pourquoi
  • Des sites hotlinkent nos fichiers (ils font des liens vers nos fichiers en faisant comme si ils venaient de leur site)

La solution pour le 2eme problème était de faire une gestion décentralisée des téléchargements : au lieu qu’un fichier ne soit que sur un seul serveur, on le met sur plusieurs serveurs, comme ça si un des serveurs plante les autres serveurs peuvent continuer à proposer le fichier. Le rôle de UD est de scanner les différents serveurs pour trouver le fichier quelquepart et générer un lien de téléchargement valide.
Pour le 3eme problème, la solution aurait facile si je n’avait pas eu le 1er problème. Malheureusement je l’avait… J’ai commencé par essayer de détourner les erreurs 404, mais pour diverses raisons ça n’était pas très stable et puis la plupart des firewalls empêchaient le système de fonctionner comme il faut. La parade a été de faire en sorte que le nom du dossier qui contient les fichiers change assez fréquement, de manière à ce que faire un lien permanant soit impossible. On envoi donc l’utilisateur sur une page qui verrifie que l’utilisateur vient du bon site, puis qui scanne tout les serveurs pour trouver les fichiers et ensuite créé un lien pour télécharger sur un des serveurs.
Ça n’est évidament pas une protection ultime, puisque même un codeur moyen pourra facilement faire sauter ce genre de protection, cependant ça reste une bonne arme contre la majorité des hotlinks : les blogs et tout les sites qui ne demandent aucune connaissance technique, car leurs webmasters n’ont justement aucune connaissance technique…

Comme mon blog est là pour faire profiter à ceux qui le veulent de mon code, voici les sources de ce gestionnaire de téléchargements, que j’espère suffisament documenté (en anglais). En cas de questions, n’hésitez pas à m’envoyer un mail ;) .

–> Télécharger uncentralizedDownloader : 7zipBzip2Zip

–> La classe sur PHP Classes

Filed under: Classes,PHP


Calendar

December 2014
M T W T F S S
« Oct    
1234567
891011121314
15161718192021
22232425262728
293031  

Recent Posts