我有一个图像文件“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作为代理? (不想等下载完成后再发响应)
您需要先request
文件,然后pipe
将响应发送到res
-object。 像这样的东西:
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);
});
您的URL是一个字符串。 如果你想下载它,你也得获取/阅读文件。
尝试:
const https = require('https');
api.get('/download', async (req, res) => {
const img = await https.get('https://cdn.my.com/image1.png');
res.download(img);
});
我现在没试过,但这个应该管用。