Я пытаюсь загрузить несколько файлов на мой SFTP-сервер, но безуспешно.Я видел этот пример:
как мне отправить (поместить) несколько файлов с помощью nodejs ssh2-sftp-client?
Но это не кажется очень эффективнымметод, поскольку он открывает и закрывает соединение с сервером при каждой загрузке файла.Просто чтобы дать некоторый контекст, мое приложение может потенциально попытаться загрузить много тысяч файлов.Я отправляю массив имен файлов с клиента на сервер и вызываю SFTP.get, чтобы получить файл из удаленного местоположения, и SFTP.put этот поток файлов обратно в другое удаленное местоположение.Это делается с помощью модуля npm ssh2-sftp-client.
Я попытался загрузить несколько файлов, используя несколько разных методов, которые потерпели неудачу.
Во-первых:
for (var i=0; i<10; i++) {
sftp.get('filepath/testFile.csv').then((stream) => {
sftp.put(stream, 'newfilepath/testFile' + i + '.csv');
})
}
Это была просто попытка извлечь один и тот же файл и загрузить его 10 раз под другим именем файла каждый раз.Однако, когда я смотрю на мой сервер:
![Uploaded file](https://i.stack.imgur.com/i4knN.png)
Был загружен только последний файл - при просмотре журналов он на самом деле просто пытался загрузить testFile10.csv 10 раз, а не testFile1.csv, testFile2.csv и т. д. *
Во-вторых:
var files = ['testFile.csv', 'testFile2.csv']
for (var i=0; i<2; i++) {
sftp.get('filepath/' + files[i]).then((stream) => {
sftp.put(stream, 'newfilepath/testFile' + i + '.csv');
})
}
Это была попытка просто загрузить 2 файла.Однако, как и в последнем примере, был загружен только последний файл - в этом случае testFile2.csv.
Есть предложения, как мне заставить это работать?Возможно ли даже поместить несколько файлов в цикл for?Это не похоже на то, что должно быть технически сложно, я просто не понимаю, почему он даже не пытается зацикливаться от 0 до 10, он просто пытается поставить testFile10 10 раз.
Это довольно серьезное техническое препятствие, которое мне нужно преодолеть в сжатые сроки, поэтому я буду очень признателен за любую помощь, которую вы можете оказать.
Заранее большое спасибо,
G