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

pprl5pva  于 2023-06-29  发布在  Node.js
关注(0)|答案(2)|浏览(270)

我有一个图像文件“https://cdn.my.com/image1.png”。
我想从我的API创建一个这个url的代理。

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

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

 res.download(url);
});

我认为download需要一个文件位置作为参数,而不是url。
如何下载URL作为代理?(我不想等待下载完成后发送响应)

bwntbbo3

bwntbbo31#

您需要先request文件,然后piperes-对象的响应。就像这样:

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);
});
bvjxkvbb

bvjxkvbb2#

const path = require('path');

api.get('/download', (req, res) => {
    res.download(path.join(__dirname, 'image1.png'));
});

让'image1.png'文件和js文件在同一目录下

相关问题