我试图在节点中使用ssh2包下载少量文件。我现在正在使用
sftp.fastGet(remote_PATH, local_PATH, {}, function(downloadError){
if(downloadError) throw downloadError;
console.log("Succesfully downloaded");
});
但无法下载目录中的所有文件。可以使用这个模块吗?如果是,怎么样?
答案 0 :(得分:0)
如果您有完整的ssh访问权限,一个简单的解决方案就是流式传输tar存档。例如:
var spawn = require('child_process').spawn;
// ...
ssh.exec('tar czf - /path/to/transfer', function(err, stream) {
if (err) throw err;
var localproc = spawn('tar', ['-C', '/path/to/extract/to', 'xf', '-']);
stream.pipe(localproc);
stream.on('close', function(code, signal) {
console.log('Tar finished with code %j, signal %j', code, signal);
// Close connection or do whatever else ...
});
// Ignore stderr
stream.stderr.resume();
});