Tag: ssh2 sftp

错误callback没有用于链接然后()与ssh2-sftp客户端在node.js lambda

我对节点和lambda非常新,所以我可能会犯一些愚蠢的错误。 我创build了一个node.js aws lambda函数,它从s3事件中获取一个文件。 如果文件是gzip解压缩,则将其上传到sftp服务器,然后创build并上传一个sig文件到同一个sftp服务器。 它在一切顺利的时候起作用,但似乎并没有正确地触发错误。 sftp命令被连接在一起,所以我希望任何错误都会导致后续的失败。 例如,如果我closures了我的sftp服务器,sftp客户端将会产生一个超时错误,但是lambda永远不会看到callback错误,只会成功。 日志确实向控制台显示错误输出,但是在跟随其余的.then()项目之后,似乎使用成功callback。 连接是否被正确logging为承诺? 示例日志: … Starting SFTP Connected to sftp, starting sftp put for lastsub2.dat file. { Error: Timed out while waiting for handshake at Timeout._onTimeout (/var/task/node_modules/ssh2/lib/client.js:687:19) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5) level: 'client-timeout' } 'Error occured during sftp relay.' END 示例代码: console.log('Loading function'); […]

使用ssh2 sftp节点读取较大的sftp文件

我正在尝试使用ssh2-sftp库在Node中读取/写入文件。 当我在一个sftp站点上对一个更大的CSV文件(但不是太大 – 比如只有2MB)做一个sftp.get,然后在返回的数据stream上读取数据时,第14个stream之后的呼叫挂在我身上。 (“数据”)呼叫。 我已经testing了几个不同的示例文件,代码在较小的文件上工作正常。 但是,如果一个CSV文件足够大,可以通过第14次调用,它就会挂起,就好像它不能再读取一样,即使有更多的读取。 而stream.on(“close”)也永远不会被调用。 显然这是很奇怪的行为。 希望也许有人遇到类似的东西,用这个图书馆,并有一些指导。 如果有帮助,这是一些代码 sftp.get(currentFileName).then((readStream) => { var counter = 0; readStream.on("data", function(d) { counter++; console.log("counter = " + counter); }); readStream.on("close", function(err) { if (err) { console.error("Problem with read stream for file " + currentFileName + ", error = ", err); } //done reading the individual file, […]

无法在同一个类JS的另一个方法中调用方法

我正在尝试在同一个类的方法连接中调用方法testing。 但我所得到的是“未捕获types错误:不能读取未定义的属性'testing'。 如何访问sftpcallback中的任何variables? 为什么这样? 这是我的代码: const SSH2 = require('ssh2').Client; class SshClient { constructor(host, username, password) { this.host = host; this.username = username; this.password = password; this.port = 22; this.client = null; } test(testvar) { console.log(testvar); } connect() { this.client = new SSH2(); let client = this.client; let username = this.username; this.client.connect({ host: this.host, port: this.port, […]