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

Modules Perl Discussion :

Module pour vérification de transfert FTP


Sujet :

Modules Perl

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Module pour vérification de transfert FTP
    Salut,

    Je cherche un module Perl qui permet la vérification qu'un transfert FTP s'est bien déroulé et que le fichier transféré n'est pas corrompu. Comme ces transferts peuvent traiter des fichiers volumineux, la vérification pourrait se faire en cours de transfert, par exemple après l'envoi d'un paquet de x octets. Une idée m'est venue, c'est d'utiliser une somme de contrôle qui garantira la "ressemblance" du paquet d'origine et du paquet transmis.
    Alors si quelqu'un a déjà vu un module qui fait ça ou qui a une idée pour traiter ce problème, qu'il me fasse signe.

    Merci

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Ca n'a pas grand chose à voir avec un module Perl... Le protocole FTP n'apporte aucune garantie sur l'intégrité des données téléchargés, si tu as de la chance le propriétaire du serveur a créé des sommes MD5 et tu peux utiliser le module Digest::MD5 pour vérifier l'intégrité de ton fichier, mais il n'y a rien d'automatisé. Ce n'est pas un problème de Perl, c'est un problème de FTP.

    --
    Jedaï

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    La meilleure façon d'effectuer des transfères de fichiers ftp est de :
    1- Choisir le bon mode de transfert, généralement binaire
    2- D'utiliser le module Digest::MD5 comme te l'a dit jedai.
    Si c'est toi qui envoi les fichiers sur le serveur ftp et que ce sont des fichiers volumineux, tu crées un fichier .txt dans lequel tu y mets tous les noms des fichiers à transférer avec leur somme MD5.
    Ex :
    sum.txt

    fb14a2f0daca48d922bb45d40d8de577 toto.tar.gz
    ze14a2f0daca48d922bb45d40d8de124 tutu.tar.gz

    Tu transfères le fichier txt.

    Puis transfère les fichiers. Une fois qu'un fichier est transféré, tu te connectes au serveur sur lequel tu as envoyé le fichier (si tu peux biensûr) et tu vérifie la somme. Si tu ne peux pas te connecter, bah tu peux pas vérifier.

    A l'inverse, si ce sont des fichiers que tu récupères, s'il n'y a pas de sum.txt de disponible, tu ne pourra pas non plus vérifier.

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    En effet, c'est moi qui procède au transfert et je peux parfaitement me connecter au serveur. Merci pour la solution mais j'y ai déjà pensé et jlé déjà essayée. Le problème, c'est que je trouve effectivement des fichiers corrompus: différence des checksums. et j'y remédie en relançant normalement le transfert. Mais le problème, c'est que le transfert dure très longtemps (en moyenne 10h) et c'est pas très ingénieux d'attendre que ça finisse pour vérifier. C'est pour ça que j'ai pensé à des vérifications lors du transfert, paquet par paquet, en relançant le paquet qui est corrompu.

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Ok.
    Es tu sur des serveurs linux ? Si oui, pourquoi ne pas utiliser rsync ?

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Sur des serveur Solaris plus précisemment.
    Effectivement, rsync paraît une bonne alternative, mais c'est plus destiné vers de la synchronisation. À ma connaissance, rsync prend comme entrée des fichiers ou encore des dossiers, mais je ne sais pas si elle peut prendre des paquets (parties de fichiers). Là encore, je n'ai pas trouvé de solution pour ce qui est des traitements de paquets: est ce que c'est mieux de découper le fichier en petites parties pour traiter chaque partie indépendemment? (l'inconvénient c'est que ce sont les ouverteures-fermetures qui prennent le plus de temps dans un transfert FTP, donc le fait de découper peut aider mais on se retrouve avec une multitude d'ouvertures-fermetures) ou encore mettre en place un mecanisme qui traite les paquets transférés? (là encore pas d'idées concrètes).

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Tes fichiers font quelles tailles ? Si tu peux les découper, ça peut être une bonne idée. T'es pas obligé d'ouvrir et fermer à chaque fichier.

  8. #8
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Les fichiers font une dizaine de gigaoctes. J'ai déjà essayé le découpage, mais il s'avère plus lent que de transférer le fichier en entier, j'explique: un transfert FTP commence par une ouverture d'accès en écriture vers le serveur distant. Quand il a l'approbation, il commence le transfert et vers la fin il procède à la cloture de l'opération. Or, ce sont ces 2 opérations (ouverture et fermeture) qui durent assez longtemps pour ne pas être négligeables. Lors d'un transfert d'un seul fichier, il n'y a pas de problème puisque les 2 opérations ne s'exécutent qu'une seule fois. Mais si on découpe le fichier et on lance les parties l'une après l'autre on se retrouve avec un temps additionnel reservé à l'ouverture et la fermeture. Notons que le temps d'exécution de ces 2 opérations est indépendant des fichiers à transférer.

  9. #9
    Candidat au Club
    Inscrit en
    Mai 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    En fait, j'ai commencé à travailler sur ta solution Djibril en ajoutant la partie découpage du fichier à transférer en parties. ça semble aller dans la bonne voie. Au départ, je procède au découpage avec un split. Ensuite, je génère un fichier liste qui contient les noms des parties avec leurs checksums. Après, j'ouvre un tunnel SSH dans lequel je transfère les fichiers un par un et entre 2 transferts je vérifie si le nom et la checksum du fichier transmis sont bien sur la liste (elle est le 1er fichier transféré). Si oui, je passe au fichier suivant, sinon, je relance son transfert. Et comme ça, je récupère à la fin toutes les parties et je les regroupe en un seul fichier, en fermant biensur le tunnel SSH à la fin.
    Voilà voilà. Bon je suis toujours en phase de développement. Il s'est avéré que ya pa mal de modules qui manquent dans les machines de test et les machines d'exploitation.
    Si vous avez des remarques ou des suggestions d'amélioration n'hésitez pas.

Discussions similaires

  1. Affichage pour suivi transfert FTP + LOG
    Par forsay1 dans le forum Développement de jobs
    Réponses: 0
    Dernier message: 18/10/2012, 11h56
  2. Conseil pour Transfert FTP avec Delphi Studio 2006 Express
    Par dominos dans le forum Composants VCL
    Réponses: 1
    Dernier message: 18/06/2010, 15h23
  3. [proFTPd] Ecouter sur un autre port que 21 pour les transferts FTP
    Par razbitume dans le forum Administration système
    Réponses: 9
    Dernier message: 05/08/2009, 18h36
  4. Vérification transfert FTP
    Par lebron_najib dans le forum Réseau
    Réponses: 0
    Dernier message: 29/05/2009, 11h02

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