label_vbpl / main.py
UKielz's picture
Upload 4 files
45392c5 verified
from fastapi import FastAPI, HTTPException
from fastapi.responses import FileResponse
import os
app = FastAPI()
BASE_IMAGE_DIR = "images"
@app.get("/images/{file_path:path}")
def get_image(file_path: str):
# Chuẩn hóa đường dẫn, tránh ../
# Ghép path rồi chuyển sang absolute
full_path = os.path.abspath(os.path.join(BASE_IMAGE_DIR, file_path))
# Chặn path traversal
if not full_path.startswith(os.path.abspath(BASE_IMAGE_DIR)):
raise HTTPException(403, "Forbidden")
if not os.path.isfile(full_path):
raise HTTPException(404, "Image not found")
return FileResponse(full_path)