Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1409 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Zipper un répertoire, fichier sur un serveur distant

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Zipper un répertoire, fichier sur un serveur distant

n°1986388
dagomakoa
Posté le 21-04-2010 à 18:08:30  profilanswer
 

salut à tous,
 
Je voudrais savoir si ce bout de code est correct  
 

Code :
  1. #!/usr/bin/perl -w
  2. use strict;
  3. use warnings;
  4. use Net::SSH2;
  5. use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
  6. my $ssh2 = Net::SSH2->new();
  7. $ssh2->connect('host') or die "Erreur de connexion :$!";
  8. #Authetification
  9. if ($ssh2->auth_password('truc','machin'))
  10. {
  11.   my $sftp = $ssh2->sftp();
  12.   my $zip = Archive::Zip->new();
  13.   my $dir = '/dir';
  14.   my $fic = '/fichier.txt';
  15.  
  16.   # archiver répertoire
  17.   my $dir_member = $zip->addDirectory( "$dir" );
  18.   # archiver un fichier
  19.   my $file_member = $zip->addFile( "$fic" );
  20.   unless ( $zip->writeToFileNamed("res.zip" ) == AZ_OK )
  21.   {
  22.     die 'write error';
  23.   }
  24. }
  25. $ssh2->disconnect();
  26. exit;


 
J'ai les messages d'erreurs suivant :
1- Can't open "/res.zip" :No such file or directory at C:/Perl/lib/Archive/Zip/Archive.pm line 369
2- Write error at ... sur la ligne unless ( $zip->writeToFileNamed("res.zip" ) == AZ_OK )
3- Can't call method "desiredCompressionLevel" on an undefined value at ...
 
Je pense que c'est un problème de chemin car à mon avis ceci cherche les dossiers et fichiers localement mais pas sur le serveur.
Y a t-il un moyen pour avoir le dossier courant ou avez vous d'autres idées ?
 
Merci pour votre aide

mood
Publicité
Posté le 21-04-2010 à 18:08:30  profilanswer
 

n°1986673
gilou
Modérateur
Modzilla
Posté le 22-04-2010 à 15:01:23  profilanswer
 

Je comprends rien à ton histoire: Tu peux pas zipper à distance comme ça avec un programme qui s'exécute en local :pt1cable:  
Il faut que tu récupères le fichier distant avec sftp, tu le zippe en local, et tu envoies a distance le fichier avec sftp.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1986688
dagomakoa
Posté le 22-04-2010 à 15:39:50  profilanswer
 

OK gilou, donc y a pas moyen de zipper un répertoire à distant ?
même en utilisant d'autre méthode (module perl) genre Net::SFTP::Foreign ou autre ? ou bien autre format d'archivage ?

n°1986746
gilou
Modérateur
Modzilla
Posté le 22-04-2010 à 17:35:53  profilanswer
 

Le pb est au niveau de addFile( $fileName [, $newName ] ) qui attends vraiment quelque chose de local. Je vois pas de fonction qui fasse addFile avec un filehandle en paramètre, sinon ça serait sans doute faisable.

 

La solution de récupérer depuis le serveur via $sftp, compresser, puis expédier sur le serveur via $sftp ne te convient pas? pourquoi? elle doit pas être moins efficace, parce que dans tous les cas, il faudra bien que les données soient récupérées depuis le serveur puis expédiées sur le serveur, puisque leur compression est effectuée en par le CPU local.
A+,


Message édité par gilou le 22-04-2010 à 17:36:27

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°1987596
dagomakoa
Posté le 26-04-2010 à 12:18:15  profilanswer
 

OK, gilou merci pour ton aide je vais faire ce que tu propose. Mais ma question est toujours à l'ordre du jour et si c'est vraiment pas possible bon tant pis


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Zipper un répertoire, fichier sur un serveur distant

 

Sujets relatifs
Upload de fichier, Move upload file EchecLire fichier avec XML
odtPHP : erreur étrange (fichier odt défectueux)Upload de gros fichier ?
Recherche de voyelles dans un fichier[BATCH] creation de repertoires par parcours de fichier texte
Télécharger un fichier depuis batch[batch] liste des fichiers d'un disque par répertoire
Récupération des données d'un fichier .hex 
Plus de sujets relatifs à : Zipper un répertoire, fichier sur un serveur distant


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR