конвейер sftp ReadableStream в файл не заканчивается - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь загрузить (получить) файл с сервера 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
...