无法使用节点ssh2从目录下载所有文件

时间:2017-02-08 06:34:47

标签: node.js sftp

我试图在节点中使用ssh2包下载少量文件。我现在正在使用

sftp.fastGet(remote_PATH, local_PATH, {}, function(downloadError){
    if(downloadError) throw downloadError;
      console.log("Succesfully downloaded");
    });

但无法下载目录中的所有文件。可以使用这个模块吗?如果是,怎么样?

1 个答案:

答案 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();
});