Skip to content

Instantly share code, notes, and snippets.

@charlietilt
Created August 27, 2015 16:18
Show Gist options
  • Save charlietilt/8d6c64b50ebf688b47e1 to your computer and use it in GitHub Desktop.
Save charlietilt/8d6c64b50ebf688b47e1 to your computer and use it in GitHub Desktop.
Bytes transfered
Client.prototype.download = function(src, dest, callback) {
var self = this;
var intervalId;
self.sftp(function(err,sftp){
if (err) {
return callback(err);
}
var sftp_readStream = sftp.createReadStream(src);
sftp_readStream.on('error', function(err){
callback(err);
});
fsDest = fs.createWriteStream(dest);
intervalId = setInterval(function() {
self.emit('transfer', fsDest.bytesWritten);
}, 5000);
sftp_readStream.pipe(fsDest)
.on('close',function(){
clearInterval(intervalId);
self.emit('read', src);
callback(null);
})
.on('error', function(err){
clearInterval(intervalId);
callback(err);
});
});
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment