Mise en cache locale des images distantes...


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Mise en cache locale des images distantes...

Message le Jeu Juil 03, 2008 4:21

Bonjour, je serais à la recherche d'un script permettant de mettre en cache des images distantes... Afin d'éviter les avatars hébergés sur de l'imagehackus et qui mettent 3h à se charger, de même pour les signatures...
Mais à une restriction prête ^^
Le www est mon forum, et je propose un service d'hébergement d'images (je pensais qu'ils y iraient d'eux même mais ils ont des sales habitudes)...
Sur mon www, je suis facturé à la bande passante et sur mon images. non, le principe serait d'interroger l'URL à distance et de la copier en local avec un:
http ://images.chezmoi.tld/imagecache.php?http://urldelimage/img.png
(Sans compter les problèmes de sécu ^^)

J'ai tenté toute la nuit de faire marcher ce script : http://www.techroam.com/image-cache-wit ... and-fopen/
Mais pour le moment sans succès, l'image se mets bien en cache, mais sur mon www. et le membre devra éditer de lui même le lien (et ça c'est peine perdu je pense), donc peut-être proposer une fonction qui <img src="<?php imagecache("url_de_limage_du_membre"); ?>" /> cette fonction image cache se chargerait de renommer/linker comme il faut... J'ai tester pas mal de script, mais sans succès...

Si certains d'entre vous utilisent ce système, je prends :)

Cordialement.


julienr
WRInaute impliqué
WRInaute impliqué
 
Messages: 913
Inscription: 5 Aoû 2003

Message le Jeu Juil 03, 2008 8:45

salut,
ton script semble pas mal, il faudrait juste quelques petits ajustement comme par exemple :
Code: Tout sélectionner
$filename = _CACHE_ABS_PATH . str_replace(array('/', '&', '?', ':', '-', '='), '_', basename($completeFilePath));    // removes a bunch of uncompliant chars from the file name.


par

Code: Tout sélectionner
$filename = _CACHE_ABS_PATH . md5sum($completeFilePath));   


ensuite sur ton site tu te rajoutes une page tout bête par exemple
Code: Tout sélectionner
<img src="getavatar.php?url=<? echo $photo; ?>">



dans getavatar.php :

Code: Tout sélectionner
<?php
echo file_get_contents( download($_GET['url']) ); //à rajouter les controls qui vont bien
?>


en faite pour bien faire il faudrait modifier la fonction download pour qu'elle ne renvoit pas une url de l'image mais plutot son contenu diretcment affichable avec un echo/print ...


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Jeu Juil 03, 2008 17:12

Hum, comme quoi la nuit porte conseille, j'viens d'avoir une idée "à la con", mais pourquoi ne pas proxiter ces images. Le site étant en SSL, les images n'étant pas sur du ssl affichent des messages d'avertissements...

Bon, je me renseigne là dessus ^^

Merci Julienr, mais je n'ai pas le niveau pour exploiter ce script, si tes conseils... Me faudrait plutôt un truc tout prêt ^^


Julia41
WRInaute passionné
WRInaute passionné
 
Messages: 1765
Inscription: 31 Aoû 2007

Message le Ven Juil 04, 2008 2:58

Hum, désolé pour cette up.
Peut-être une solution à base de proxy.
J'enregistre un h t t p s :// proxy. et je fais transiter toutes les images non https de mon site par ce proxy...

Par contre je viens de tester quelques proxy mais je ne trouve rien de simple...

Squid semblait mais en fait ça ne semble pas convenir...


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités