如何从浏览器在Node中下载SFTP文件

时间:2017-12-06 18:39:12

标签: javascript node.js download sftp

我正在尝试使用Node中的SFTP下载一些文件。我知道我必须处理流,但我不知道该怎么做并将文件保存在本地机器中(在下载文件夹中)。

app.get('/download', (req, res) => {
    var Client = require('ssh2-sftp-client');
    var sftp = new Client();

    var config = {
        host: 'host123',
        port: '22',
        username: 'username',
        password: 'secretpassword'
    };

    sftp.connect(config).then((data) => {
        res.download(data);
    });
});

谢谢!

1 个答案:

答案 0 :(得分:-1)

参考Download a file from NodeJS Server using Express

sftp.connect允许您传输数据。你可以将它传递给响应

app.get('/download', (req, res) => {
                var Client = require('ssh2-sftp-client');
                var sftp = new Client();

    var config = {
            host: 'host123',
            port: '22',
            username: 'username',
            password: 'secretpassword'
    };

    sftp.connect(config)
    .then(()=>{
        return sftp.get(remoteFilePath, [useCompression], [encoding]);
    })
    .then((data) => {
            fs.createWriteStream(data).pipe(res);
    });
});