hutatools / fnc /download.js
fullpwerr's picture
p
baf0ae1
raw
history blame contribute delete
898 Bytes
const axios = require("axios");
module.exports = async function(req, res, next) {
const fetch = await import("node-fetch").default;
try {
const {
url,
name
} = req.query;
if(!url || !name) return next();
const _res = await fetch(url, {
headers: {
"Referer": url,
"Access-Control-Allow-Origin": "*",
"Referrer-Policy": "strict-origin-when-cross-origin",
"User-Agent": req.get("User-Agent"),
...(req.headers.range ? {
Range: req.headers.range
} : {})
}
});
for(const [key, value] of _res.headers.entries()) res.setHeader(key, value);
res.setHeader("Transfer-Encoding", "chunked");
res.setHeader("Content-Disposition", `attachment; filename*=UTF-8''${encodeURIComponent(name)}`);
_res.body.pipe(res.status(_res.status));
} catch(e) {
console.error(e)
next();
};
}