J'ai un ptit soucis de performance...
Pour un site que je développe, je cherche a envoyer des fichiers de
grandes taille vers le client, mais en maitrisant l'envoi (etre bien sur
que la personne à le droit de télécharger la chose.)
Je me suis donc tourné vers le script suivant en pseudo code:
un grand classique. seulement, les fichiers sont de vraiment grande
taille (40Mo) et je suis confronté à un problème que je n'imaginais pas
: j'ai beau executer ce script dans une nouvelle fenetre de mon
navigateur (avec un target="_blank"), je ne peux plus naviguer tant que
le téléchargement n'est pas terminé.
En outre, même si j'ouvre un autre navigateur à coté, et que je navigue
sur le site, c'est horriblement lent. (les pages mettent du coup plus
d'une secondes à se générer, contre grosso modo 0.06 sinon, le tout sur
un serveur dédié assez balaise (athlon 2400+ 512Mo sous linux/apache2/php5)
Je me dis que je suis bêtement en train de monopoliser le processeur
php, en lui faisant lire un fichier et l'envoyer sur stdout...
Est-ce que vous voyiez des solutions??? je pensais eventuellement à une
sorte de fork, pour au moins libérer l'interpréteur php un minimum,
voire un appel système... la copie de fichier dans un répertoire
temporaire sous un nom inbitable avec génération de lien ne me satisfait
que moyennement...
des idées??
Lascap
ps/ question subsidiaire : la ligne header("Content-Type:
application/msword"); est la seule qui me permet d'obtenir une boite de
dialogue chez moi. étrange, non??? d'autant que les fichiers en question
sont des archives zip, rar ou dmg (mac)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Bouchard
Lascap wrote:
Salut,
J'ai un ptit soucis de performance...
C'est bien dommage.
Pour un site que je développe, je cherche a envoyer des fichiers de grandes taille vers le client, mais en maitrisant l'envoi (etre bien sur que la personne à le droit de télécharger la chose.)
Je vais encore repondre à coté de la plaque. Je vais finir par me faire lyncher pour ça, mais bon, je me lance.
Je recapitule, tu cherches à mettre un fichier disponible sur le web mais que seulement à certaines personnes suivant un systeme de couple login/password ou un truc du genre ?
Alors premierement, je pense que php n'est pas adapté à ton problème, il faudrait voir ce qui tu peux faire avec apache et un .htaccess qui va bien.
Maitenant, je ne crois pas qu'il y a un grand interet de ce prendre la tete. Je m'explique.
Le fichier n'est disponible que via une url bien precise. Cette url ne sera connue que des personnes qui ont le bon login/password. Donc ce fichier ne sera telecharger que par ces personnes.
Oui, mais ? La personne peux donner l'url à quelqu'un qui pourra ainsi telecharger librement le fichier ? C'est malheureusement vrai, mais il en va de même avec un systeme de protection, puisqu'il suffit a cette personne de telecharger le fichier pour le rendre disponible autre part et ainsi le redistribué.
Bref, il n'y à pas de solution 100 % sûre à ce problème donc cela ne sert à rien de deployer une usine à gaz.
Je me dis que je suis bêtement en train de monopoliser le processeur php, en lui faisant lire un fichier et l'envoyer sur stdout...
C'est parfaitement ça :)
ps/ question subsidiaire : la ligne header("Content-Type: application/msword"); est la seule qui me permet d'obtenir une boite de dialogue chez moi. étrange, non??? d'autant que les fichiers en question sont des archives zip, rar ou dmg (mac)
Hum. Le problème doit surement venir de ton navigateur qui n'interprete as correctement les entetes. Ce ne serait pas internet explorer ? (trool velu, ne pas tenir compte)
-- Guillaume.
Lascap wrote:
Salut,
J'ai un ptit soucis de performance...
C'est bien dommage.
Pour un site que je développe, je cherche a envoyer des fichiers de
grandes taille vers le client, mais en maitrisant l'envoi (etre bien sur
que la personne à le droit de télécharger la chose.)
Je vais encore repondre à coté de la plaque. Je vais finir par me faire
lyncher pour ça, mais bon, je me lance.
Je recapitule, tu cherches à mettre un fichier disponible sur le web
mais que seulement à certaines personnes suivant un systeme de couple
login/password ou un truc du genre ?
Alors premierement, je pense que php n'est pas adapté à ton problème, il
faudrait voir ce qui tu peux faire avec apache et un .htaccess qui va bien.
Maitenant, je ne crois pas qu'il y a un grand interet de ce prendre la
tete. Je m'explique.
Le fichier n'est disponible que via une url bien precise. Cette url ne
sera connue que des personnes qui ont le bon login/password. Donc ce
fichier ne sera telecharger que par ces personnes.
Oui, mais ? La personne peux donner l'url à quelqu'un qui pourra ainsi
telecharger librement le fichier ? C'est malheureusement vrai, mais il
en va de même avec un systeme de protection, puisqu'il suffit a cette
personne de telecharger le fichier pour le rendre disponible autre part
et ainsi le redistribué.
Bref, il n'y à pas de solution 100 % sûre à ce problème donc cela ne
sert à rien de deployer une usine à gaz.
Je me dis que je suis bêtement en train de monopoliser le processeur
php, en lui faisant lire un fichier et l'envoyer sur stdout...
C'est parfaitement ça :)
ps/ question subsidiaire : la ligne header("Content-Type:
application/msword"); est la seule qui me permet d'obtenir une boite de
dialogue chez moi. étrange, non??? d'autant que les fichiers en question
sont des archives zip, rar ou dmg (mac)
Hum. Le problème doit surement venir de ton navigateur qui n'interprete
as correctement les entetes. Ce ne serait pas internet explorer ? (trool
velu, ne pas tenir compte)
Pour un site que je développe, je cherche a envoyer des fichiers de grandes taille vers le client, mais en maitrisant l'envoi (etre bien sur que la personne à le droit de télécharger la chose.)
Je vais encore repondre à coté de la plaque. Je vais finir par me faire lyncher pour ça, mais bon, je me lance.
Je recapitule, tu cherches à mettre un fichier disponible sur le web mais que seulement à certaines personnes suivant un systeme de couple login/password ou un truc du genre ?
Alors premierement, je pense que php n'est pas adapté à ton problème, il faudrait voir ce qui tu peux faire avec apache et un .htaccess qui va bien.
Maitenant, je ne crois pas qu'il y a un grand interet de ce prendre la tete. Je m'explique.
Le fichier n'est disponible que via une url bien precise. Cette url ne sera connue que des personnes qui ont le bon login/password. Donc ce fichier ne sera telecharger que par ces personnes.
Oui, mais ? La personne peux donner l'url à quelqu'un qui pourra ainsi telecharger librement le fichier ? C'est malheureusement vrai, mais il en va de même avec un systeme de protection, puisqu'il suffit a cette personne de telecharger le fichier pour le rendre disponible autre part et ainsi le redistribué.
Bref, il n'y à pas de solution 100 % sûre à ce problème donc cela ne sert à rien de deployer une usine à gaz.
Je me dis que je suis bêtement en train de monopoliser le processeur php, en lui faisant lire un fichier et l'envoyer sur stdout...
C'est parfaitement ça :)
ps/ question subsidiaire : la ligne header("Content-Type: application/msword"); est la seule qui me permet d'obtenir une boite de dialogue chez moi. étrange, non??? d'autant que les fichiers en question sont des archives zip, rar ou dmg (mac)
Hum. Le problème doit surement venir de ton navigateur qui n'interprete as correctement les entetes. Ce ne serait pas internet explorer ? (trool velu, ne pas tenir compte)
-- Guillaume.
Olivier Miakinen
ps/ question subsidiaire : la ligne header("Content-Type: application/msword"); est la seule qui me permet d'obtenir une boite de dialogue chez moi. étrange, non???
Ce que je trouve étrange, c'est que tu puisses affirmer ça alors que cela m'étonnerait que tu aies pu tester les zillions de chaînes de caractères possibles.
d'autant que les fichiers en question sont des archives zip, rar ou dmg (mac)
Ben oui, ce n'est donc pas très bien de mentir en disant que c'est du msword. Tu as essayé application/octetstream ?
ps/ question subsidiaire : la ligne header("Content-Type:
application/msword"); est la seule qui me permet d'obtenir une boite de
dialogue chez moi. étrange, non???
Ce que je trouve étrange, c'est que tu puisses affirmer ça alors que
cela m'étonnerait que tu aies pu tester les zillions de chaînes de
caractères possibles.
d'autant que les fichiers en question
sont des archives zip, rar ou dmg (mac)
Ben oui, ce n'est donc pas très bien de mentir en disant que c'est du
msword. Tu as essayé application/octetstream ?
ps/ question subsidiaire : la ligne header("Content-Type: application/msword"); est la seule qui me permet d'obtenir une boite de dialogue chez moi. étrange, non???
Ce que je trouve étrange, c'est que tu puisses affirmer ça alors que cela m'étonnerait que tu aies pu tester les zillions de chaînes de caractères possibles.
d'autant que les fichiers en question sont des archives zip, rar ou dmg (mac)
Ben oui, ce n'est donc pas très bien de mentir en disant que c'est du msword. Tu as essayé application/octetstream ?
Lascap
Salut,
Je vais encore repondre à coté de la plaque. Je vais finir par me faire lyncher pour ça, mais bon, je me lance.
Je recapitule, tu cherches à mettre un fichier disponible sur le web mais que seulement à certaines personnes suivant un systeme de couple login/password ou un truc du genre ?
C'est un poil plus compliqué. En fait, c'est un site avec un système de vente en ligne. Un site qui vend des packs de boucles de musique, pour être plus précis (des samples, quoi). Les archives font donc entre 20 et 40Mo. Donc les packs doivent etre accessibles pour le 'client' au moment ou il a payé son droit.
Alors premierement, je pense que php n'est pas adapté à ton problème, il faudrait voir ce qui tu peux faire avec apache et un .htaccess qui va bien.
Maitenant, je ne crois pas qu'il y a un grand interet de ce prendre la tete. Je m'explique.
C'est sur, c'est sur....
Le fichier n'est disponible que via une url bien precise. Cette url ne sera connue que des personnes qui ont le bon login/password. Donc ce fichier ne sera telecharger que par ces personnes.
Oui, mais ? La personne peux donner l'url à quelqu'un qui pourra ainsi telecharger librement le fichier ? C'est malheureusement vrai, mais il en va de même avec un systeme de protection, puisqu'il suffit a cette personne de telecharger le fichier pour le rendre disponible autre part et ainsi le redistribué.
Les packs sont sous licence. Après, que le type mette le pack sur un serveur à lui, etc, etc, soit. tant pis pour nous, tant pis pour lui, tant pis pour tout le monde. Mais au moins il n'auras pas distribué l'url autour de lui et surchargé le serveur. (genre une centaine de type qui téléchargent 40Mo en même temps...)
Conclusion : pas de conclusion pour l'instant.
Salut,
Je vais encore repondre à coté de la plaque. Je vais finir par me faire
lyncher pour ça, mais bon, je me lance.
Je recapitule, tu cherches à mettre un fichier disponible sur le web
mais que seulement à certaines personnes suivant un systeme de couple
login/password ou un truc du genre ?
C'est un poil plus compliqué. En fait, c'est un site avec un système de
vente en ligne. Un site qui vend des packs de boucles de musique, pour
être plus précis (des samples, quoi). Les archives font donc entre 20 et
40Mo. Donc les packs doivent etre accessibles pour le 'client' au moment
ou il a payé son droit.
Alors premierement, je pense que php n'est pas adapté à ton problème, il
faudrait voir ce qui tu peux faire avec apache et un .htaccess qui va bien.
Maitenant, je ne crois pas qu'il y a un grand interet de ce prendre la
tete. Je m'explique.
C'est sur, c'est sur....
Le fichier n'est disponible que via une url bien precise. Cette url ne
sera connue que des personnes qui ont le bon login/password. Donc ce
fichier ne sera telecharger que par ces personnes.
Oui, mais ? La personne peux donner l'url à quelqu'un qui pourra ainsi
telecharger librement le fichier ? C'est malheureusement vrai, mais il
en va de même avec un systeme de protection, puisqu'il suffit a cette
personne de telecharger le fichier pour le rendre disponible autre part
et ainsi le redistribué.
Les packs sont sous licence. Après, que le type mette le pack sur un
serveur à lui, etc, etc, soit. tant pis pour nous, tant pis pour lui,
tant pis pour tout le monde. Mais au moins il n'auras pas distribué
l'url autour de lui et surchargé le serveur. (genre une centaine de type
qui téléchargent 40Mo en même temps...)
Je vais encore repondre à coté de la plaque. Je vais finir par me faire lyncher pour ça, mais bon, je me lance.
Je recapitule, tu cherches à mettre un fichier disponible sur le web mais que seulement à certaines personnes suivant un systeme de couple login/password ou un truc du genre ?
C'est un poil plus compliqué. En fait, c'est un site avec un système de vente en ligne. Un site qui vend des packs de boucles de musique, pour être plus précis (des samples, quoi). Les archives font donc entre 20 et 40Mo. Donc les packs doivent etre accessibles pour le 'client' au moment ou il a payé son droit.
Alors premierement, je pense que php n'est pas adapté à ton problème, il faudrait voir ce qui tu peux faire avec apache et un .htaccess qui va bien.
Maitenant, je ne crois pas qu'il y a un grand interet de ce prendre la tete. Je m'explique.
C'est sur, c'est sur....
Le fichier n'est disponible que via une url bien precise. Cette url ne sera connue que des personnes qui ont le bon login/password. Donc ce fichier ne sera telecharger que par ces personnes.
Oui, mais ? La personne peux donner l'url à quelqu'un qui pourra ainsi telecharger librement le fichier ? C'est malheureusement vrai, mais il en va de même avec un systeme de protection, puisqu'il suffit a cette personne de telecharger le fichier pour le rendre disponible autre part et ainsi le redistribué.
Les packs sont sous licence. Après, que le type mette le pack sur un serveur à lui, etc, etc, soit. tant pis pour nous, tant pis pour lui, tant pis pour tout le monde. Mais au moins il n'auras pas distribué l'url autour de lui et surchargé le serveur. (genre une centaine de type qui téléchargent 40Mo en même temps...)