Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

SFTP Foreign upload\download status

by StarkRavingCalm (Sexton)
on Feb 14, 2013 at 19:27 UTC ( #1018772=perlquestion: print w/replies, xml ) Need Help??
StarkRavingCalm has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks, I have been working on a script for sftp transfers. All is working well but I have some last tweaks to get thru. Here is the one I am currrently struggling with:

I would like to have a status of the upload\download like you see when using scp or sftp on the command line. According to the SFTP Foreign docs, this can be doing using callback.

I get the successfully connected and I got past the upload messages but not the offset of size bytes read. Thoughts?

my $sftp = Net::SFTP::Foreign->new($host, %args); if ($sftp->error) { $sftp->error and die "unable to connect to remote host: " . $sftp->e +rror; } else { print "Successfully connected to $host!\n\n\n"; } $sftp->put("/tmp/scripttest/upfile4","/home/ftptest/inbound/upfile4", +callback => sub { my($sftp, $data, $offset, $size) = @_; print "$offset of $size bytes read\r"; }); print "I got past the upload\n"; exit;

Replies are listed 'Best First'.
Re: SFTP Foreign upload\download status
by StarkRavingCalm (Sexton) on Feb 14, 2013 at 19:31 UTC

    As seems to be the case... I figured it out immedialty after I posted.....

    Replace the \r with a \n in this line: print "$offset of $size bytes read\r";

Re: SFTP Foreign upload\download status
by sdetweil (Sexton) on Feb 15, 2013 at 05:29 UTC
    you can also let the code do the work.. I use a status bar type approach.. divide the file size by 80 (screen width) and then put up a fixed row of # chars (used for the status update)
    $ftp->hash(\*STDOUT,int(filesize to download/80)); # download the new program files print '#' x (80); $ftp->get(filename);

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1018772]
Approved by toolic
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (1)
As of 2018-08-17 00:15 GMT
Find Nodes?
    Voting Booth?
    Asked to put a square peg in a round hole, I would:

    Results (174 votes). Check out past polls.