Page 1 sur 1

gestion du download

Posté : 22 mai 2008, 01:05
par Corise
Bonjour à tous,

Je voudrais avoir quelques conseils et informations à propos des téléchargements de fichiers.
J'ai actuelement un site sur la musique ou les gens soumettent des fichiers musicaux de toutes les tailles mais assez gros tout de même. Cela va de 30 à 100Mo voir un peu plus. Les fichiers sont sur un server différent du code. J'utilise une fonction de téléchargement basic si je puis dire dont je vous poste une partie...

	
                @header("HTTP/1.0 200 OK");
	@header("HTTP/1.1 200 OK");
                if( $file_size )
	{
		@header("Content-Length: ".(string)($file_size));
	}


                     @header("Cache-Control: private");
                     @header("Pragma: no-cache");
                     @header("Content-Type: ".$this->mime_type[ $file_ext ]);
                     @header("Content-disposition: attachment; filename=".$file_name);
                     @header("Content-Transfer-Encoding: binary");
                     @readfile($url);
Un simple lien sur une image déclenche l'ouverture d'un popup qui s'assure que le membre à la droit de telecharger, s'il na pas dépassé son quota journalier etc... Tout fonctionne très bien ceci dit les téléchargements etant lancé depuis le site qui contient le code, le server finit par être assez lent lorsque beaucoup de membres téléchargent en même temps. Et de l'autre coté le server de fichiers n'est pratiquement pas solicité. Je supose donc que le téléchargement même si le fichier est sur un server externe prend du process apache sur le server du code ? <- peut être que quelqu'un pourra m'informer sur ce detail ? Les server sont des server dédié, la fréquantation est elevé mais pas non plus astronomique et les server ont des configurations correct 2Go de mêmoire, athlon X2 Dual core... le tout tourne sous fedora ca devrait être sufisant pour faire tenir une bonne petite charge non ?

Bref est-ce que quelqu'un aurait une idée ou un début d'idée pour essayer d'optimiser la maniére de gérer le téléchargement, comment évité que le téléchargement transite par le server du code ?

Je vous remercie de votre attention :)[/php][/code]

Posté : 22 mai 2008, 10:51
par zeus
Bonjour,

Je pense qu'il va falloir que le serveur de fichier dispose lui aussi d'un serveur Apache/PHP et qu'il prenne à sa charge une partie de la vérification.

Une solution me viens à l'esprit :
Sur le serveur de code, tu vérifies qu'il dispose du droit de télécharger le fichier et tu génères une clé hasché contenant, entre autre, le timestamp de la génération de la clé.
Sur le serveur de fichier, tu décode la clé, tu vérifies que le timestamp n'a pas passé une durée de validité de X minutes et tu lances le téléchargement.

Sinon, tu peux également déplacer la vérification sur le serveur de fichier, mais il faudra que les 2 serveurs soient capable d'accéder aux données des membres