SFTP в Node.js загружает пустые файлы - PullRequest
0 голосов
/ 16 декабря 2018

У меня проблема с проектом, над которым я работаю: я загружаю файлы со своего FTP-сервера с помощью модуля узла с именем sftp-ssh2-client и затем пытаюсь передать поток обратно на мой FTP-сервер, нов другой каталог.

Код выглядит следующим образом:

const stream = sftp.get(`path/to/file.csv.gz`).then(() => {

}).catch((err) => {

});

sftp.put(stream, 'path/to/new/file.csv.gz').then(() => {

}).catch((err) => {

})

Однако, когда я подключаюсь к своему FTP-серверу к месту, куда был помещен файл, размер файла равен0 и при загрузке поврежден.Может кто-нибудь сказать мне, что я здесь делаю не так?

Большое спасибо,

G

1 Ответ

0 голосов
/ 16 декабря 2018

sftp.get() не возвращает поток, он возвращает обещание, что разрешает в поток, поэтому ваш код должен выглядеть примерно так:

sftp.get('path/to/file.csv.gz').then(stream => {
  return sftp.put(stream, 'path/to/new/file.csv.gz');
}).catch(err => {
  ...
});

Однако этоМне кажется, что вы могли бы просто использовать sftp.rename(), который не потребовал бы загрузки и загрузки всего файла:

sftp.rename('path/to/file.csv.gz', 'path/to/new/file.csv.gz').then(...);

Кроме того, если вы хотите взять загрузку,затем загрузите маршрут, убедитесь, что вы прочитали документацию относительно кодировки .

...