我需要打开与服务器的SFTP连接,将文件从那里复制到本地。
为此,我尝试使用
安装node-sftp模块npm install node-sftp
它没有开箱即用,我不得不将npm安装的sftp.js文件替换为github存储库的文件:https://github.com/ajaxorg/node-sftp
(npm版本使用TTY,github版本使用PTY。我不确定它们是什么)
启动服务器并调用代码后,我在控制台中看到了这一点。
launching: sftp -o Port=22 jash@xxx.63.xxx.49
listening...
控制台刚挂在这里。我打算在连接打开后打印当前目录中的所有文件。
这是代码
var http = require('http');
var Sftp = require('node-sftp');
var port = process.env.PORT || 1337;
var msgHandler = function(request, response) {
var options = {
host:"xxx.63.xxx.49",
username:"jash",
password:"mypassword",
port:22
};
var conn = new Sftp(options,function(err){
console.log(err);
});
conn.cd(".", function(err) {
console.log(err);
conn.ls(".", function(err, res) {
console.log(res[0].path);
});
});
console.log("listening...");
}
http.createServer(msgHandler).listen(port);
凭据很好,我在SecureCRT中使用它们并且能够登录。
答案 0 :(得分:0)
Sftp()
(function(err)...
)的第二个参数是您要放置conn.cd(...
代码的位置。它(所述第二个参数)是一旦建立连接就被调用的函数。当然,请务必检查err
。