首页 > 解决方案 > 节点;用户通过远程文件服务器下载

问题描述

浏览器请求 - 网络服务器 - 文件服务器(只能从网络服务器 ip 访问) - 网络服务器 - 浏览器下载

我有一个网络服务器和一个文件服务器。允许网络服务器访问文件服务器(IP 过滤器)。我想共享一个文件/使其可从文件服务器下载,但不必在文件服务器上进行公共访问。我正在考虑在文件服务器(小型网络服务器)上制作一个 api

router.get('/download', async (req, res) => {
    res.header("Access-Control-Allow-Origin", "https://testserver");
    res.header("Access-Control-Allow-Headers", "X-requested-With");
    res.download(__dirname + '/../download/'+req.query.file, req.query.file)
})

然后通过网络服务器下载文件,然后将其发送给浏览器/用户

router('/downloadOnTheWebserver', (req,res) => {
...
res.download(request('testserver' + someFileToDownload').pipe(make a downloadstream somehow)) 

这是这样做的方式,以及如何......?

标签: node.jsdownloadfileserver

解决方案


好吧,我这样做了:

文件服务器:

router.get('/download', async (req, res) => { 
res.download(__dirname + '/folder/filename')

})

网络服务器:

var pdfstream = request.get("https://downloadlinkonfileserver)
res.attachment('filename'); 
pdfstream.pipe(res)
res.on('finish',function (err,data){
  if(err){
    throw err
  } else {
    console.log('It went well');
}

推荐阅读