如何使用express从url下载文件?

Jon*_*Sud 2 node.js

我有一个图像文件“https://cdn.my.com/image1.png”。

我想从我的 api 创建到此 url 的代理。

api.get('/download', (req, res) => {

 const url = "https://cdn.my.com/image1.png";

 res.download(url);
});
Run Code Online (Sandbox Code Playgroud)

我认为download需要一个文件位置作为参数而不是 url。

如何作为代理下载网址?(我不想等待下载完成并在之后发送响应)

eol*_*eol 5

您首先需要request文件,然后pipe是对对象的响应res。像这样的东西:

const request = require('superagent')

api.get('/download', (req, res) => {
   res.set(
     'Content-Disposition',
     'attachment; filename=some_file_name.png'
   );

   request("https://cdn.my.com/image1.png").pipe(res);
});
Run Code Online (Sandbox Code Playgroud)