Files
EpicNext-Cms/src/lib/media-storage.ts
T
openhands 1bbbf6e5a4
Local Build and Deploy / deploy (push) Successful in 1m9s
Persist media uploads outside public/ to survive rebuilds and redeploys
Move media storage from public/assets/images/media to storage/media
(outside Git and public/), so uploaded images, favicons and logos are
preserved across rebuilds and git clean. Add a shared media-storage helper,
update the upload/serve actions and API routes, and gitignore storage/.
2026-07-18 17:04:48 +02:00

16 lines
525 B
TypeScript

import path from "node:path";
/**
* Persistent media root. Lives outside `public/` and outside Git so uploads
* survive rebuilds, redeploys and `git clean`. Served through /api/media.
*/
export const MEDIA_ROOT = path.resolve(process.cwd(), "storage", "media");
export function resolveMediaPath(...segments: string[]): string {
const target = path.resolve(MEDIA_ROOT, ...segments);
if (target !== MEDIA_ROOT && !target.startsWith(MEDIA_ROOT + path.sep)) {
throw new Error("Invalid media path");
}
return target;
}