Я пытаюсь загрузить (получить) файл с сервера sftp, используя ssh2-sftp-client
, программа не завершает работу и зависает даже после того, как события end, close
запущены на ReadableStream, а события finish and close
запущены наWriteableStream.Ниже программа и ее вывод.Также нет ошибок, как мне отладить?что происходит?Любая помощь будет очень ценится
const Promise = require("bluebird");
const fs = require("fs");
const Client = require("ssh2-sftp-client");
const util = require("util");
const sftp = new Client();
const path = require("path");
const openpgp = require("openpgp"); // use as CommonJS, AMD, ES6 module or via window.openpgp
openpgp.initWorker({
path: "openpgp.worker.js"
}); // set the relative web worker path
const config = {
host: 'xxxx',
port: '1111',
username: 'xxxx',
password: 'xxxx'
};
function getFileFromSFTP() {
console.log("Program Execution started");
/* get files from SFTP */
const remotePath = "remoteFile";
const localPath = "localFile"
sftp.connect(config).then(() => {
sftp.get(remotePath, true, null).then((data) => {
data.on('error', (e) => {
console.log(e);
});
data.on('end', () => {
console.log("rs end");
});
data.on('close', () => {
console.log("rs closed");
});
data.pipe(fs.createWriteStream(localPath).on('error', (e) => {
console.log(e);
}).on('finish', () => {
console.log("ws finish");
}).on('close', () => {
console.log("ws close");
}));
});
});
}
function init() {
getFileFromSFTP();
}
init();
вывод
> node index.js
Program Execution started
rs end
ws finish
ws close
rs closed