1

ファイルをローカルに保存せずに(ローカルストレージが小さすぎるため)、通常のhttpリンクからftpサーバー(ubuntuの下)に大きなファイルをダウンロードしたいです。

wget または小さな perl スクリプトを使用してこれを行う方法について何かアイデアはありますか? (ローカル マシンに sudo 権限がありません)。

4

4 に答える 4

2

これが私の見解です。コマンドラインでのNet::FTPのwget組み合わせです。

wget -O - http://website.com/hugefile.zip | perl -MNet::FTP -e 'my $ftp = Net::FTP->new("ftp.example.com"); $ftp->login("user", "pass"); $ftp->put(\*STDIN, "hugefile.zip");'

もちろん、ファイル(ftpupload.pl)に入れて実行することもできます。

#!/usr/bin/perl
use strict;
use warnings;
use Net::FTP;

my $ftp = Net::FTP->new("ftp.example.com"); # connect to FTP server
$ftp->login("user", "pass"); # login with your credentials

# Because of the pipe we get the file content on STDIN
# Net::FTP's put is able to handle a pipe as well as a filehandle
$ftp->put(\*STDIN, "hugefile.zip");

次のように実行します。

wget -O - http://website.com/hugefile.zip | perl ftpupload.pl
于 2012-09-24T09:11:19.277 に答える
1

FTPの生活を楽にするCPANモジュールがあります。もちろんです。

http://search.cpan.org/search?mode=module&query=Net%3A%3AFTP

そして、WWW :: Mechanizeはファイルを検索し、リンクをたどります。

これらのモジュールを使用すると、問題を解決できると思います。

于 2012-09-24T07:36:21.707 に答える
1

wputを試すことができます。あまり知られていないツールですが、使えると思います。

于 2012-09-24T08:55:39.593 に答える
0

wgetのoutput-documentオプションを使用する

wget -O /dev/null http://foo.com/file.uuu

wgetのマニュアルページから:

"-O file
       --output-document=file
           The documents will not be written to the appropriate files, but all will be
concatenated together and written to file.  If - is used as file, documents will be
printed to standard output, disabling link conversion.  (Use ./- to print to a file 
literally named -.)

       Use of -O is not intended to mean simply "use the name file instead of the 
one in the URL;" rather, it is analogous to shell redirection: wget -O file http://foo is
intended to work like wget -O - http://foo > file; file will be truncated immediately, 
and all downloaded content will be written there."

しかし、その目的が何であるかわかりません

于 2012-09-24T07:19:23.403 に答える