使用perl Net :: SFTP :: Foreign从SFTP下载多个文件

时间:2015-11-18 10:32:06

标签: perl

我使用以下代码从SFTP下载文件,我在下载一个文件后收到错误消息。然后我重新运行该程序,然后它再次只下载一个文件,当试图下载数组中的下一个文件时,它失败了。我无法理解这种失败的原因,请仔细阅读以下代码并分享意见。

#!/usr/bin/perl
use strict;
use Net::SFTP::Foreign::Constants qw(:error :status);
use Net::SFTP::Foreign;
use Net::SFTP::Foreign::Attributes;


my $SFTP_CON=Net::SFTP::Foreign->new("sftpserver.test.com",user=>"testuser",password=>"pass");
my @SFTP_Files=('/test/1.txt','/test/2.txt','/test/3.txt');
my $root_dir='/test/';
$local_dir='/u/test/';

foreach my $file_to_dwn(@SFTP_Files){
    my $file_to=$file_to_dwn;
    $file_to=~s/$root_dir/$local_dir/igs;

    unless($SFTP_CON->get("$file_to_dwn","$file_to")){
     if (($SFTP_CON->error == SFTP_ERR_REMOTE_STAT_FAILED or
      $SFTP_CON->error == SFTP_ERR_REMOTE_OPEN_FAILED) and
      $SFTP_CON->status == SSH2_FX_NO_SUCH_FILE) {
      print  "Remote file does not exist!";
      exit;
      }
      else {
       print "Transfer Failed";
       exit;
      }
       print $SFTP_CON->error."\n";
       exit;
      }
}

当程序试图一个接一个地下载(第二个文件下载)时,我收到“传输失败”。

请做好。

0 个答案:

没有答案