Integrated a logic for the content delivery server
This commit is contained in:
parent
ea0027cac3
commit
3a38ad2d36
@ -1,9 +1,20 @@
|
||||
import express, {Express} from 'express';
|
||||
import express, {Express, Request, Response} from 'express';
|
||||
import {getMediaObject, pipeMedia} from "../controller/media";
|
||||
|
||||
const app: Express = express();
|
||||
|
||||
/** Logs something with a cdn prefix */
|
||||
const log = (msg: string) => console.log(`[ContentDelivery] ${msg}`);
|
||||
|
||||
app.get("*.*", async (req: Request, res: Response) => {
|
||||
const asset = (req.originalUrl.substring(1) || "default.txt").split(".");
|
||||
|
||||
const found = await getMediaObject(asset[0]);
|
||||
if (!found) return res.status(404).send("<h2>Asset not found</h2>");
|
||||
if (found.assetEnding !== asset[1]) return res.status(404).send("<h2>Asset not found</h2>");
|
||||
|
||||
await pipeMedia(found.assetId, res);
|
||||
});
|
||||
|
||||
/** Starts the cdn service */
|
||||
export const startServer = (port: number = 8673) => app.listen(port, () => log(`Listening on port ${port}`));
|
Loading…
x
Reference in New Issue
Block a user