Я пытаюсь загрузить 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);
}