NodeJS SFTP получить почтовый файл - PullRequest
0 голосов
/ 07 февраля 2019

Попытка получить группу zip-файлов с сервера с использованием SFTP.Вот упрощенный фрагмент кода, пытающийся получить только один файл:

var fs = require('fs');
let Client = require('ssh2-sftp-client');
let sftp = new Client();
sftp.connect({
    host: 'ftp.domain.com',
    port: '22',
    username: 'username',
    password: 'password'
}).then(() => {
    sftp.get("fileName.zip").then((data) => {
        data.pipe(fs.createWriteStream('download/fileName.zip'));
    }).catch((err) => {
        console.log(err, 'get error');
    });
}).catch((err) => {
    console.log(err, 'connect error');
});

Я получаю загруженный файл, но, хотя размер файла на сервере составляет около 1,4 МБ, загруженный файл равен 2,5 МБ и можетНе открывайтесь никакими zip-утилитами.Я подозреваю, что это проблема кодирования, но все ответы, которые я нашел до сих пор, говорят , а не , чтобы установить кодировку для двоичных потоков.

1 Ответ

0 голосов
/ 07 февраля 2019

Существует открытая проблема на странице библиотеки github относительно этой проблемы -> Поврежденный файл на SFTP

Вы можете попытаться установить кодировку на ноль:

sftp.get("fileName.zip", null, null).then(...)
...