【问题标题】:How to download a file from an SFTP server using Node如何使用 Node 从 SFTP 服务器下载文件
【发布时间】:2017-11-08 23:30:18
【问题描述】:

我希望让用户直接从 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 下载到用户的磁盘?

【问题讨论】:

  • 您没有指定 http 的设置方式。你用的是快递吗?
  • 是的,我很抱歉。
  • 你最后是怎么解决这个问题的?

标签: node.js download sftp


【解决方案1】:

您将流通过管道传输到您的res。例如:

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

【讨论】:

  • 我把这条路线称为<a href="/download" download> Download file</a>。一旦我点击了href,它就给了我一个加载请求,没有任何结果。你知道可能是什么问题吗?
最近更新 更多