from pathlib import Path from fastapi import APIRouter, HTTPException from fastapi.responses import FileResponse from app.config import get_settings router = APIRouter(prefix="/media", tags=["media"]) @router.get("/generated/{filename}") def get_generated_image(filename: str) -> FileResponse: if ".." in filename or "/" in filename or "\\" in filename: raise HTTPException(status_code=400, detail="Invalid filename") settings = get_settings() path = Path(settings.generated_media_dir) / filename if not path.is_file(): raise HTTPException(status_code=404, detail="File not found") return FileResponse(path, media_type="image/png")