Загрузите файлы с местоположения сервера SFTP на локальный компьютер в Node js, используя npm ssh2-sftp-client - PullRequest
0 голосов
/ 03 июня 2018

Я пытаюсь загрузить XML-файлы, имеющиеся на сервере SFTP, в папку на моем локальном компьютере.Я использовал пакет npm ssh2-sftp-client и использовал функцию sftp.get.Расположение файлов сервера сохраняется в текстовом файле, например:

/opt/path/xml1,
/opt/path/xml2

Эти пути читаются с использованием функции fs.readfile и сохраняются в массиве, что означает

arr[1] = /opt/path/xml1
arr[2] = /opt/path/xml2

Затем с использованием sftp.get &stream.pipe для загрузки файла по локальному пути.Проблема в том, что xml1 только загружается, и после этого код продолжает работать и время ожидания истекло.Есть идеи, почему он не запускается несколько раз?

Кодирование в Javascript.

 // Reading xml file location from text file
 // array has two remotefile location
 for(var i = 0; len = arr.length; i < len; i++) 
 {
     (function (i) 
     {
         var remotefilename = arr[i];
         var localfilename = '/path';
         sftp.get(remotefilename).then(stream) => 
         {
             stream.pipe(fs.createWriteStream(localfilename));
             // it download xml1 only after that keeps running & timing out
             // I suspect not coming out of this loop. Have tried stream.end/close,  fs.close but didn't working
        })
     })(i);
 }
...