如何使用Node从SFTP服务器下载文件

时间:2017-11-08 14:41:58

标签: node.js download sftp

我希望让用户直接从sftp服务器下载文件,但是在浏览器中。例如,用户想要找到名为“noise”的音频文件名,他们输入参数并显示要下载的按钮。我使用express作为我的Web应用程序框架以及ejs。

我找到了通过SFTP下载的方法,如下面的代码,但这是通过我的应用程序文件夹而不是用户的磁盘保存的。

        sftp.connect(config).then(() => {  
            sftp.get('file.wav').then((data) => {
              var outFile = fs.createWriteStream('file.wav')
              data.on('data',function(response) {
                outFile.write(response);
              });
              data.on('close', function() {
                outFile.close();
              });
            });
        })

如何通过按钮为他们提供选项,直接从sftp下载到用户的磁盘?

1 个答案:

答案 0 :(得分:0)

您将流传输到res。例如:

router.get('/download', (req, res) => {
   sftp.connect(config).then(() => {  
      sftp.get('file.wav').then((data) => {
        res.pipe(data)
      })
   })
})