【发布时间】:2014-09-12 12:55:00
【问题描述】:
我的问题是关于使用 perl 将本地文件 ftp 到 ftp 服务器。问题是为什么上传速度这么慢。这是代码:
use strict;
use warning;
use NET::FTP;
my $ftpserver = "10.110.143.9";
my $usr = "John";
my $passwd = "John";
sub main {
my $ftp = Net::FTP->new( $ftpserver, Timeout => 200 ) or print "Can't connect ftpserver" sleep 5;
my $rc = $ftp->login( $usr, $passwd );
unless ($rc) {
print("login failed!");
return 1;
}
print("login success");
$ftp->binary();
$ftp->put("d:\\2012.txt");
$ftp->quit;
return 0;
}
30mb 的上传时间约为 5 分钟,而在同一台机器上使用另一个 ftp 客户端只需 10 秒左右。
【问题讨论】:
-
使用其他 FTP 客户端上传相同文件的速度有多快?与您的 FTP 服务器的连接是否真的那么糟糕?
-
例如,文件大约30MB,使用我的程序上传到服务器大约需要5分钟,而使用另一种上传方式大约需要10秒。
-
ftp有两种模式;通常,如果您的 ftp 客户端位于不是 10.x.x.x 或 192.168.x.x 的可公开寻址 IP 地址上,您将能够使用主动模式。如果不是,您将需要使用被动模式。