Le script s'occupe de faire des transfert ftp entre 2 serveurs ftp
windows.
Lorsque c'est des fichiers .txt, il n'y a pas de problème.
Par contre lorsque nous transférons des fichiers .pdf ou .zip, le
fichier destination est corrompu.
Je me suis rendu compte que les fichiers pdf par exemple était plus
grand.
En regardant dans le script, j'ai ajouté la ligne de code suivante
$ftp->binary();
Ca n'a rien changé, je m'en doutais un peu, les serveurs etant sur
windows tout les deux .
Le script s'occupe de faire des transfert ftp entre 2 serveurs ftp
windows.
Lorsque c'est des fichiers .txt, il n'y a pas de problème.
Par contre lorsque nous transférons des fichiers .pdf ou .zip, le
fichier destination est corrompu.
Je me suis rendu compte que les fichiers pdf par exemple était plus
grand.
En regardant dans le script, j'ai ajouté la ligne de code suivante
$ftp->binary();
Ca n'a rien changé, je m'en doutais un peu, les serveurs etant sur
windows tout les deux .
Le script s'occupe de faire des transfert ftp entre 2 serveurs ftp
windows.
Lorsque c'est des fichiers .txt, il n'y a pas de problème.
Par contre lorsque nous transférons des fichiers .pdf ou .zip, le
fichier destination est corrompu.
Je me suis rendu compte que les fichiers pdf par exemple était plus
grand.
En regardant dans le script, j'ai ajouté la ligne de code suivante
$ftp->binary();
Ca n'a rien changé, je m'en doutais un peu, les serveurs etant sur
windows tout les deux .
À (at) Fri, 28 Sep 2007 02:02:14 -0700,
écrivait (wrote):Le script s'occupe de faire des transfert ftp entre 2 serveurs ftp
windows.
Deux serveurs FTP ne peuvent pas se parler. En FTP, il y a toujours
une programme client (celui qui se connecte) et un programme serveur
(celui qui attend les connexion). À moins que vous n'utilisiez votre
script comme intermédiaire entre deux serveurs FTP (il est alors
client des deux serveurs).Lorsque c'est des fichiers .txt, il n'y a pas de problème.
Par contre lorsque nous transférons des fichiers .pdf ou .zip, le
fichier destination est corrompu.
Je me suis rendu compte que les fichiers pdf par exemple était plus
grand.
En regardant dans le script, j'ai ajouté la ligne de code suivante
$ftp->binary();
Si l'objet $ftp est bien du type 'Net::FTP', c'est la bonne manière
d'indiquer qu'on souhaite faire des transferts en mode binaire (et
donc sans transformation).Ca n'a rien changé, je m'en doutais un peu, les serveurs etant sur
windows tout les deux .
Effectivement, si les deux machines utilisent le même format de
fichier texte, les transformations des fins de ligne ne devraient rien
changer au contenu du fichier. Mais, les fichiers textes sous Windows
ont d'autres particularités (par exemple les caractères de fin de
fichiers) qui pourraient expliquer la corruption des fichiers binaires
transférés en mode texte. Dans tous les cas, le passage en mode
binaire ne peut qu'accélerer le transfert.
Bon, maintenant, si même en mode binaire, les fichiers sont encore
corrompus, c'est qu'il y a un problème ailleurs. Peut-être lors de la
lecture des fichiers... Les fichiers binaires ne se lisent pas comme
des fichiers textes (surtout sous Windows). Mais ma boule de cristal
est de très mauvaise qualité et ne me permet pas de voir votre code
pour y rechercher le bug... ;-)
À (at) Fri, 28 Sep 2007 02:02:14 -0700,
Cedric.Revel@gmail.com écrivait (wrote):
Le script s'occupe de faire des transfert ftp entre 2 serveurs ftp
windows.
Deux serveurs FTP ne peuvent pas se parler. En FTP, il y a toujours
une programme client (celui qui se connecte) et un programme serveur
(celui qui attend les connexion). À moins que vous n'utilisiez votre
script comme intermédiaire entre deux serveurs FTP (il est alors
client des deux serveurs).
Lorsque c'est des fichiers .txt, il n'y a pas de problème.
Par contre lorsque nous transférons des fichiers .pdf ou .zip, le
fichier destination est corrompu.
Je me suis rendu compte que les fichiers pdf par exemple était plus
grand.
En regardant dans le script, j'ai ajouté la ligne de code suivante
$ftp->binary();
Si l'objet $ftp est bien du type 'Net::FTP', c'est la bonne manière
d'indiquer qu'on souhaite faire des transferts en mode binaire (et
donc sans transformation).
Ca n'a rien changé, je m'en doutais un peu, les serveurs etant sur
windows tout les deux .
Effectivement, si les deux machines utilisent le même format de
fichier texte, les transformations des fins de ligne ne devraient rien
changer au contenu du fichier. Mais, les fichiers textes sous Windows
ont d'autres particularités (par exemple les caractères de fin de
fichiers) qui pourraient expliquer la corruption des fichiers binaires
transférés en mode texte. Dans tous les cas, le passage en mode
binaire ne peut qu'accélerer le transfert.
Bon, maintenant, si même en mode binaire, les fichiers sont encore
corrompus, c'est qu'il y a un problème ailleurs. Peut-être lors de la
lecture des fichiers... Les fichiers binaires ne se lisent pas comme
des fichiers textes (surtout sous Windows). Mais ma boule de cristal
est de très mauvaise qualité et ne me permet pas de voir votre code
pour y rechercher le bug... ;-)
À (at) Fri, 28 Sep 2007 02:02:14 -0700,
écrivait (wrote):Le script s'occupe de faire des transfert ftp entre 2 serveurs ftp
windows.
Deux serveurs FTP ne peuvent pas se parler. En FTP, il y a toujours
une programme client (celui qui se connecte) et un programme serveur
(celui qui attend les connexion). À moins que vous n'utilisiez votre
script comme intermédiaire entre deux serveurs FTP (il est alors
client des deux serveurs).Lorsque c'est des fichiers .txt, il n'y a pas de problème.
Par contre lorsque nous transférons des fichiers .pdf ou .zip, le
fichier destination est corrompu.
Je me suis rendu compte que les fichiers pdf par exemple était plus
grand.
En regardant dans le script, j'ai ajouté la ligne de code suivante
$ftp->binary();
Si l'objet $ftp est bien du type 'Net::FTP', c'est la bonne manière
d'indiquer qu'on souhaite faire des transferts en mode binaire (et
donc sans transformation).Ca n'a rien changé, je m'en doutais un peu, les serveurs etant sur
windows tout les deux .
Effectivement, si les deux machines utilisent le même format de
fichier texte, les transformations des fins de ligne ne devraient rien
changer au contenu du fichier. Mais, les fichiers textes sous Windows
ont d'autres particularités (par exemple les caractères de fin de
fichiers) qui pourraient expliquer la corruption des fichiers binaires
transférés en mode texte. Dans tous les cas, le passage en mode
binaire ne peut qu'accélerer le transfert.
Bon, maintenant, si même en mode binaire, les fichiers sont encore
corrompus, c'est qu'il y a un problème ailleurs. Peut-être lors de la
lecture des fichiers... Les fichiers binaires ne se lisent pas comme
des fichiers textes (surtout sous Windows). Mais ma boule de cristal
est de très mauvaise qualité et ne me permet pas de voir votre code
pour y rechercher le bug... ;-)
Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d'avoir
un transcript de toutes les informations echangees au niveau du controle du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une commande
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et noter les
differences.
Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main avec
un client ftp pas en perl.
- soit le script perl est buggue -> ca devrait se voir tres vite en mode
verbeux.
- on a un bug autre, dans Net::FTP ou son installation, et la ca va etre plus
dur.
Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d'avoir
un transcript de toutes les informations echangees au niveau du controle du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une commande
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et noter les
differences.
Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main avec
un client ftp pas en perl.
- soit le script perl est buggue -> ca devrait se voir tres vite en mode
verbeux.
- on a un bug autre, dans Net::FTP ou son installation, et la ca va etre plus
dur.
Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d'avoir
un transcript de toutes les informations echangees au niveau du controle du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une commande
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et noter les
differences.
Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main avec
un client ftp pas en perl.
- soit le script perl est buggue -> ca devrait se voir tres vite en mode
verbeux.
- on a un bug autre, dans Net::FTP ou son installation, et la ca va etre plus
dur.
À (at) Fri, 28 Sep 2007 10:20:09 +0000 (UTC),
(Marc Espie) écrivait (wrote):Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d'av oir
un transcript de toutes les informations echangees au niveau du control e du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une comma nde
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et noter les
differences.
Ce sont de bons conseils.Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main av ec
un client ftp pas en perl.
C'est facile à vérifier mais si le serveur FTP fonctionne, j'imagine
que ce n'est pas qu'avec ce script Perl. Donc, le bug se serait déjà
manifester sur d'autres utilisations.- soit le script perl est buggue -> ca devrait se voir tres vite en mode
verbeux.
Je pense que c'est l'explication la plus plausible. Et le mode debug
peut donner de bonnes informations (mais peut-être trop détaillées).- on a un bug autre, dans Net::FTP ou son installation, et la ca va etr e plus
dur.
Net::FTP n'est pas buggué (je l'utilise régulièrement sur de
nombreuses plateformes). Quant à un défaut d'installation... Cela me
semble assez peu crédible, d'autant que, sous windows, l'installation
à de grandes chances de passer par PPM (d'activestate) ou par cygwin.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 28 Sep 2007 10:20:09 +0000 (UTC),
es...@lain.home (Marc Espie) écrivait (wrote):
Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d'av oir
un transcript de toutes les informations echangees au niveau du control e du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une comma nde
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et noter les
differences.
Ce sont de bons conseils.
Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main av ec
un client ftp pas en perl.
C'est facile à vérifier mais si le serveur FTP fonctionne, j'imagine
que ce n'est pas qu'avec ce script Perl. Donc, le bug se serait déjà
manifester sur d'autres utilisations.
- soit le script perl est buggue -> ca devrait se voir tres vite en mode
verbeux.
Je pense que c'est l'explication la plus plausible. Et le mode debug
peut donner de bonnes informations (mais peut-être trop détaillées).
- on a un bug autre, dans Net::FTP ou son installation, et la ca va etr e plus
dur.
Net::FTP n'est pas buggué (je l'utilise régulièrement sur de
nombreuses plateformes). Quant à un défaut d'installation... Cela me
semble assez peu crédible, d'autant que, sous windows, l'installation
à de grandes chances de passer par PPM (d'activestate) ou par cygwin.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 28 Sep 2007 10:20:09 +0000 (UTC),
(Marc Espie) écrivait (wrote):Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d'av oir
un transcript de toutes les informations echangees au niveau du control e du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une comma nde
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et noter les
differences.
Ce sont de bons conseils.Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main av ec
un client ftp pas en perl.
C'est facile à vérifier mais si le serveur FTP fonctionne, j'imagine
que ce n'est pas qu'avec ce script Perl. Donc, le bug se serait déjà
manifester sur d'autres utilisations.- soit le script perl est buggue -> ca devrait se voir tres vite en mode
verbeux.
Je pense que c'est l'explication la plus plausible. Et le mode debug
peut donner de bonnes informations (mais peut-être trop détaillées).- on a un bug autre, dans Net::FTP ou son installation, et la ca va etr e plus
dur.
Net::FTP n'est pas buggué (je l'utilise régulièrement sur de
nombreuses plateformes). Quant à un défaut d'installation... Cela me
semble assez peu crédible, d'autant que, sous windows, l'installation
à de grandes chances de passer par PPM (d'activestate) ou par cygwin.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
On 28 sep, 13:19, Paul Gaborit wrote:À (at) Fri, 28 Sep 2007 10:20:09 +0000 (UTC),
(Marc Espie) écrivait (wrote):Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d' avoir
un transcript de toutes les informations echangees au niveau du contr ole du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une com mande
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et note r les
differences.
Ce sont de bons conseils.Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main avec
un client ftp pas en perl.
C'est facile à vérifier mais si le serveur FTP fonctionne, j'imagine
que ce n'est pas qu'avec ce script Perl. Donc, le bug se serait déj à
manifester sur d'autres utilisations.- soit le script perl est buggue -> ca devrait se voir tres vite en m ode
verbeux.
Je pense que c'est l'explication la plus plausible. Et le mode debug
peut donner de bonnes informations (mais peut-être trop détaillée s).- on a un bug autre, dans Net::FTP ou son installation, et la ca va e tre plus
dur.
Net::FTP n'est pas buggué (je l'utilise régulièrement sur de
nombreuses plateformes). Quant à un défaut d'installation... Cela me
semble assez peu crédible, d'autant que, sous windows, l'installation
à de grandes chances de passer par PPM (d'activestate) ou par cygwin.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
Nous avons fait des tests avec le client ftp de windows (ftp.exe), les
fichiers sont ok a l'arrivé.
Je vais essayer le mode 'debug' si je comprends comment cela
fonctionne ;)
La base du script a été pris d'un script nommé ftpmon je crois.
Merci pour vos réponses- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
{display}n",
"Erreur: ".GetError()."n";
{display}n",
"Erreur: ".GetError()."n";
message), return 0;
On 28 sep, 13:19, Paul Gaborit <Paul.Gabo...@invalid.invalid> wrote:
À (at) Fri, 28 Sep 2007 10:20:09 +0000 (UTC),
es...@lain.home (Marc Espie) écrivait (wrote):
Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d' avoir
un transcript de toutes les informations echangees au niveau du contr ole du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une com mande
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et note r les
differences.
Ce sont de bons conseils.
Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main avec
un client ftp pas en perl.
C'est facile à vérifier mais si le serveur FTP fonctionne, j'imagine
que ce n'est pas qu'avec ce script Perl. Donc, le bug se serait déj à
manifester sur d'autres utilisations.
- soit le script perl est buggue -> ca devrait se voir tres vite en m ode
verbeux.
Je pense que c'est l'explication la plus plausible. Et le mode debug
peut donner de bonnes informations (mais peut-être trop détaillée s).
- on a un bug autre, dans Net::FTP ou son installation, et la ca va e tre plus
dur.
Net::FTP n'est pas buggué (je l'utilise régulièrement sur de
nombreuses plateformes). Quant à un défaut d'installation... Cela me
semble assez peu crédible, d'autant que, sous windows, l'installation
à de grandes chances de passer par PPM (d'activestate) ou par cygwin.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
Nous avons fait des tests avec le client ftp de windows (ftp.exe), les
fichiers sont ok a l'arrivé.
Je vais essayer le mode 'debug' si je comprends comment cela
fonctionne ;)
La base du script a été pris d'un script nommé ftpmon je crois.
Merci pour vos réponses- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
{display}n",
"Erreur: ".GetError()."n";
{display}n",
"Erreur: ".GetError()."n";
message), return 0;
On 28 sep, 13:19, Paul Gaborit wrote:À (at) Fri, 28 Sep 2007 10:20:09 +0000 (UTC),
(Marc Espie) écrivait (wrote):Il faut regarder du cote info de debug. Je n'ai pas regarde Net::FTP *,
mais il est certainement possible de le passer en mode verbeux, et d' avoir
un transcript de toutes les informations echangees au niveau du contr ole du
FTP. Typiquement, le ->binary() devrait se voir comme envoi d'une com mande
au serveur, et retour d'un code d'erreur du serveur.
On peut ensuite essayer de faire le meme transfert a la main, et note r les
differences.
Ce sont de bons conseils.Il y a plusieurs possibilites:
- soit c'est l'installation ftp qui deconne. -> se verifie a la main avec
un client ftp pas en perl.
C'est facile à vérifier mais si le serveur FTP fonctionne, j'imagine
que ce n'est pas qu'avec ce script Perl. Donc, le bug se serait déj à
manifester sur d'autres utilisations.- soit le script perl est buggue -> ca devrait se voir tres vite en m ode
verbeux.
Je pense que c'est l'explication la plus plausible. Et le mode debug
peut donner de bonnes informations (mais peut-être trop détaillée s).- on a un bug autre, dans Net::FTP ou son installation, et la ca va e tre plus
dur.
Net::FTP n'est pas buggué (je l'utilise régulièrement sur de
nombreuses plateformes). Quant à un défaut d'installation... Cela me
semble assez peu crédible, d'autant que, sous windows, l'installation
à de grandes chances de passer par PPM (d'activestate) ou par cygwin.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
Nous avons fait des tests avec le client ftp de windows (ftp.exe), les
fichiers sont ok a l'arrivé.
Je vais essayer le mode 'debug' si je comprends comment cela
fonctionne ;)
La base du script a été pris d'un script nommé ftpmon je crois.
Merci pour vos réponses- Masquer le texte des messages précédents -
- Afficher le texte des messages précédents -
{display}n",
"Erreur: ".GetError()."n";
{display}n",
"Erreur: ".GetError()."n";
message), return 0;
Je vous poste le script que nous utilisons.
il scan des répertoires, verifie que les fichiers sont pas en cours de
modification et les transferts
Je vous poste le script que nous utilisons.
il scan des répertoires, verifie que les fichiers sont pas en cours de
modification et les transferts
Je vous poste le script que nous utilisons.
il scan des répertoires, verifie que les fichiers sont pas en cours de
modification et les transferts
À (at) Fri, 28 Sep 2007 05:54:46 -0700,
écrivait (wrote):Je vous poste le script que nous utilisons.
il scan des répertoires, verifie que les fichiers sont pas en cours de
modification et les transferts
Après un coup d'oeil rapide, il semble correctement écrit. L'appel à
'binary' est au bon endroit. Les tests de bonne exécution des
commandes sont bien faits. Tel quel je ne vois pas pourquoi ça ne
fonctionnerait pas.
Quelle version de Perl utilisez-vous ? Une 5.8.8 ?
Quelle version de Net::FTP ? La dernière version est la 2.77.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 28 Sep 2007 05:54:46 -0700,
Cedric.Re...@gmail.com écrivait (wrote):
Je vous poste le script que nous utilisons.
il scan des répertoires, verifie que les fichiers sont pas en cours de
modification et les transferts
Après un coup d'oeil rapide, il semble correctement écrit. L'appel à
'binary' est au bon endroit. Les tests de bonne exécution des
commandes sont bien faits. Tel quel je ne vois pas pourquoi ça ne
fonctionnerait pas.
Quelle version de Perl utilisez-vous ? Une 5.8.8 ?
Quelle version de Net::FTP ? La dernière version est la 2.77.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Fri, 28 Sep 2007 05:54:46 -0700,
écrivait (wrote):Je vous poste le script que nous utilisons.
il scan des répertoires, verifie que les fichiers sont pas en cours de
modification et les transferts
Après un coup d'oeil rapide, il semble correctement écrit. L'appel à
'binary' est au bon endroit. Les tests de bonne exécution des
commandes sont bien faits. Tel quel je ne vois pas pourquoi ça ne
fonctionnerait pas.
Quelle version de Perl utilisez-vous ? Une 5.8.8 ?
Quelle version de Net::FTP ? La dernière version est la 2.77.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
Je vous donne des nouvelles de mon problème.
J'ai trouvé l'erreur.
J'avais oublié un binary() sur un 2nd script et j'avais complètement
oublié que les fichiers passé dans ce script.
Merci pour votre aide quand meme
Je vous donne des nouvelles de mon problème.
J'ai trouvé l'erreur.
J'avais oublié un binary() sur un 2nd script et j'avais complètement
oublié que les fichiers passé dans ce script.
Merci pour votre aide quand meme
Je vous donne des nouvelles de mon problème.
J'ai trouvé l'erreur.
J'avais oublié un binary() sur un 2nd script et j'avais complètement
oublié que les fichiers passé dans ce script.
Merci pour votre aide quand meme