Мне нужно загрузить .txt.pgp
файлы из sftp
. Я пробовал npm ssh2
, ssh2-sftp-client
и node-ssh
без какого-либо успеха.
Самый близкий к этому моменту список файлов в удаленной папке, используя sftp.readdir
(ssh2
) или sftp.list
(ssh2-sftp-client
).
Я пробовал pipe
и fs.createWriteStream
и sftp.fastGet
, но на моем локальном компьютере нет сохраненных файлов.
const conn = new Client();
conn.on('ready', () => {
console.log('Client :: ready');
conn.sftp((err, sftp) => {
if (err) throw err;
sftp.readdir('out', (err, list) => {
if (err) throw err;
list.forEach(item => {
console.log(item.filename);
const fileName = item.filename;
sftp.fastGet(fileName, fileName, {}, downloadError => {
if(downloadError) throw downloadError;
console.log("Succesfully uploaded");
});
})
conn.end();
});
});
}).connect(config);
OR
const Client = require('ssh2-sftp-client');
const sftp = new Client();
sftp.connect(config).then(() => {
return sftp.list('out');
})
.then(files => {
// console.log(files);
if (files.length > 0) {
console.log('got list of files!');
}
files.map(file => {
const fileName = file.name;
sftp.get(fileName)
.then(() => {
fs.writeFile(fileName);
});
})
})
.then(() => {
sftp.end();
}).catch((err) => {
console.log(err);
});