Skip to content
This repository was archived by the owner on Feb 5, 2022. It is now read-only.

Commit 589a659

Browse files
committed
Emit transfer event on download.
1 parent 431573d commit 589a659

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

lib/client.js

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -292,18 +292,27 @@ Client.prototype.download = function(src, dest, callback) {
292292
return callback(err);
293293
}
294294

295-
var sftp_readStream = sftp.createReadStream(src);
296-
sftp_readStream.on('error', function(err){
297-
callback(err);
298-
});
299-
sftp_readStream.pipe(fs.createWriteStream(dest))
300-
.on('close',function(){
301-
self.emit('read', src);
302-
self.close();
303-
callback(null);
304-
})
305-
.on('error', function(err){
306-
callback(err);
295+
sftp.open(src, 'r', function(err, fd) {
296+
sftp.fstat(fd, function(err, stats) {
297+
var bufferSize = stats.size;
298+
299+
var sftp_readStream = sftp.createReadStream(src);
300+
sftp_readStream.on('data', function(data) {
301+
bytesDownloaded += data.length;
302+
self.emit('transfer', data, bytesDownloaded, bufferSize);
303+
})
304+
sftp_readStream.on('error', function(err){
305+
callback(err);
306+
});
307+
sftp_readStream.pipe(fs.createWriteStream(dest))
308+
.on('close',function(){
309+
self.emit('read', src);
310+
callback(null);
311+
})
312+
.on('error', function(err){
313+
callback(err);
314+
});
315+
});
307316
});
308317
});
309318
};

0 commit comments

Comments
 (0)