import crc32 from './crc32.js' import http from 'axios' import express from 'express' const app = express() const port = 7860 app.use(express.json()) app.use(express.urlencoded({ extended: true })) app.get('*', async (req, res) => { try { const file_url = req.path.replace(/^\//, '') const file = await http({ method: 'GET', url: file_url, responseType: 'arraybuffer' }) const hash = crc32(file.data) const upload_info = await http({ method: 'GET', url: 'https://data.emmmm.eu.org/upload/sg' }) const upload_result = await http({ method: 'POST', url: upload_info.data.url, headers: { 'content-crc32': hash, 'authorization': upload_info.data.authorization }, data: file.data }) if (upload_result.status == 200) { res.send(JSON.stringify({ vid: upload_info.data.vid, url: `https://sf16-sg-default.akamaized.net/obj/${upload_info.data.uri}` })) } else { throw Error } } catch (e) { res.send(e.toString()) } }) app.listen(port, async () => { console.log(`http://localhost:${port}`) })