feat(api): 🔒 Make all media be proxied through an internal proxy

This commit is contained in:
Jesse Wierzbinski 2024-05-04 19:13:23 -10:00
parent 9547cd097a
commit ead34b818f
No known key found for this signature in database
8 changed files with 54 additions and 18 deletions

View file

@ -3,7 +3,7 @@ import { errorResponse, response } from "@response";
export const meta = applyConfig({
allowedMethods: ["GET"],
route: "/api/v1/media/:id",
route: "/api/media/:id",
ratelimits: {
max: 100,
duration: 60,

View file

@ -0,0 +1,27 @@
import { apiRoute, applyConfig } from "@api";
import { errorResponse, response } from "@response";
import { z } from "zod";
export const meta = applyConfig({
allowedMethods: ["GET"],
route: "/api/media/proxy",
ratelimits: {
max: 100,
duration: 60,
},
auth: {
required: false,
},
});
export const schema = z.object({
url: z.string(),
});
export default apiRoute<typeof meta, typeof schema>(
async (req, matchedRoute, extraData) => {
const { url } = extraData.parsedRequest;
return fetch(url);
},
);