[image-service] Add middleware prefix

This commit is contained in:
Ittipat Lusuk 2026-06-15 17:24:49 +07:00
parent cb6261472a
commit 5faebd423f
2 changed files with 22 additions and 4 deletions

22
main.py
View file

@ -1,4 +1,4 @@
from fastapi import FastAPI, UploadFile, File, HTTPException, Query
from fastapi import FastAPI, UploadFile, File, HTTPException, Query, Request
from fastapi.responses import FileResponse
from pathlib import Path
from typing import Optional
@ -39,6 +39,23 @@ ALLOWED_FOLDERS = {"page_drink",
ALLOWED_EXTENSIONS = {".jpg", ".jpeg", ".png", ".gif", ".webp"}
@app.middleware("http")
async def strip_prefix_middleware(request: Request, call_next):
path = request.scope["path"]
if path.startswith(PREFIX):
new_path = path[len(PREFIX):]
if not new_path:
new_path = "/"
request.scope["path"] = new_path
print(f"[Middleware] {path} -> {new_path}")
response = await call_next(request)
return response
def validate_folder(folder: str):
if folder not in ALLOWED_FOLDERS:
raise HTTPException(400, f"folder must be {ALLOWED_FOLDERS}")
@ -308,7 +325,8 @@ async def commit_files_to_git(
commit_data = {
"signature_username": display_name,
"signature_email": email,
"message": f"commit {folder} {country}"
"message": f"commit {folder} {country}",
"ref": SERVICE_NAME
}
multipart_files = {}

View file

@ -2,13 +2,13 @@ server {
listen 80;
# /image/{folder}/...
location ~ ^/image/(page_drink|page_drink_disable|page_drink_disable_n|page_drink_disable_n2|page_drink_n|page_drink_picture2_n|page_drink_press|page_drink_press_n|page_drink_select)/(.*)$ {
location ~ ^/nginx-image/image/(page_drink|page_drink_disable|page_drink_disable_n|page_drink_disable_n2|page_drink_n|page_drink_picture2_n|page_drink_press|page_drink_press_n|page_drink_select)/(.*)$ {
alias /usr/src/app/taobin_project/image/$1/$2;
# alias /taobin_project/image/$1/$2;
}
# /inter/{country}/image/{folder}/...
location ~ ^/inter/([^/]+)/image/(page_drink|page_drink_disable|page_drink_disable_n|page_drink_disable_n2|page_drink_n|page_drink_picture2_n|page_drink_press|page_drink_press_n|page_drink_select)/(.*)$ {
location ~ ^/nginx-image/inter/([^/]+)/image/(page_drink|page_drink_disable|page_drink_disable_n|page_drink_disable_n2|page_drink_n|page_drink_picture2_n|page_drink_press|page_drink_press_n|page_drink_select)/(.*)$ {
alias /usr/src/app/taobin_project/inter/$1/image/$2/$3;
# alias /taobin_project/inter/$1/image/$2/$3;
}