Spaces:
Sleeping
Sleeping
File size: 1,606 Bytes
a0b358c 62393c4 a0b358c 29b5003 a0b358c c944d00 a0b358c c944d00 a0b358c |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
const express = require('express');
const request = require('request');
require('dotenv').config();
const app = express();
const PORT = 7860;
const eachfilesize = {};
const REQUEST_URL = process.env.REQUEST_URL;
const TOKEN = process.env.TOKEN;
async function getFileSize(link) {
return new Promise((resolve, reject) => {
request.head(link, (err, res, body) => {
if (err) {
reject(err);
} else {
const contentLength = (parseInt(res.headers['content-length']) || 0.1).toString();
eachfilesize[link] = contentLength;
resolve(contentLength);
}
});
});
}
app.get('*', async (req, res) => {
if (req.method !== 'GET') {
return res.status(405).send('Method Not Allowed');
}
const filename = req.params[0];
if (filename) {
const originalUrl = REQUEST_URL ? `${REQUEST_URL}${filename}` : `https://huggingface.co/tranquan24/video/resolve/main/${filename}`;
const headers = {
'Authorization': `Bearer ${TOKEN}`,
'Range': req.headers.range || ''
};
try {
request.get({ url: originalUrl, headers: headers }, (err, response, body) => {
if (err) {
console.error(err);
return res.status(500).send('500');
}
res.set(response.headers);
res.status(response.statusCode).send(body);
});
} catch (err) {
console.error(err);
return res.status(500).send('500');
}
} else {
return res.status(400).send('400');
}
});
app.listen(PORT, '0.0.0.0', () => {
console.log(`Server is running on http://0.0.0.0:${PORT}`);
});
|