IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web Perl Discussion :

Download de gros fichiers


Sujet :

Web Perl

  1. #1
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Points : 794
    Points
    794
    Par défaut Download de gros fichiers
    Bonsoir tout le monde !

    J'ai beaucoup de gros fichiers à récupérer sur plusieurs serveurs web (type 100Mo par fichier).
    Je traite donc ma file avec plusieurs threads, mais quand j'en mets trop je me tape des beaux "out of memory", liés au fait que quand j'arrive a la fin de plusieurs fichiers, je me retrouve avec beaucoup de RAM occupée par leur stockage temporaire (du moins je suppose que LWP fonctionne de cette façon) avant vidage sur le disque.
    J'aimerais donc changer ce comportement et envoyer directement le flux sur le disque dans le fichier de destination, ce qui me permettrait de ne plus avoir ce problème.
    Voila mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    		   my $file = $res->filename;
    		   unless (-e $file) {
                              print "$file\n";
    		          open FILE,">$file" or die "Impossible de créer le fichier $file : $!\n";
    		          binmode(FILE);
    		          print FILE $res->content;
    		          close(FILE);
    		   }
    Merci de vos suggestions

    @+
    Mr6

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Citation Envoyé par Mr6 Voir le message
    Je traite donc ma file avec plusieurs threads, mais quand j'en mets trop je me tape des beaux "out of memory", liés au fait que quand j'arrive a la fin de plusieurs fichiers, je me retrouve avec beaucoup de RAM occupée par leur stockage temporaire (du moins je suppose que LWP fonctionne de cette façon) avant vidage sur le disque.
    Pour stocker directement dans un fichier, on peut utiliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ua->get($url, ":content_file" => $filename)

  3. #3
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 608
    Points : 794
    Points
    794
    Par défaut
    Tout bêtement...
    La prochaine fois je lirais la doc LWP::UA en entier
    Merci !

    @+
    Mr6

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/05/2012, 16h22
  2. Download gros fichiers
    Par Le_pouetch dans le forum Langage
    Réponses: 5
    Dernier message: 22/11/2011, 14h40
  3. Gestion du resume download sur gros fichiers
    Par atrhacker dans le forum Langage
    Réponses: 0
    Dernier message: 10/02/2011, 21h54
  4. Un langage pour lire, traiter et écrire de gros fichiers
    Par March' dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 07/04/2003, 16h26
  5. XML DOM et gros fichiers
    Par Manu_Just dans le forum APIs
    Réponses: 4
    Dernier message: 28/03/2003, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo