node.js - 节点;用户通过远程文件服务器下载
问题描述
我有一个网络服务器和一个文件服务器。允许网络服务器访问文件服务器(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))
这是这样做的方式,以及如何......?
解决方案
好吧,我这样做了:
文件服务器:
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');
}
推荐阅读
- r - 如何防止 shinyapps.io 缓存?
- google-apps-script - 使用 Google 脚本在 Google 表单上的块中随机播放项目
- xlwings - 将文本分配给轴标题(xlwings)
- javascript - 更新一,不存在则插入,仅在条件为真时修改 MongoDB
- spring-boot - 响应式 Spring Boot WebFlux 应用程序的 NGINX 设置
- regex - Java 正则表达式 - 替换表达式直到单词边界
- sparql - SPARQL 删除查询
- spring-boot - 如何在 Spring Cloud Data Flow 中获取重新启动作业的执行 ID
- minecraft - YAML 为 YAML Lint 中的文件提供错误
- python - 确定信号中是否包含特定频率