backend/fastapi/app/router/image_api.py
2024-12-06 14:12:28 +09:00

57 lines
1.9 KiB
Python

from fastapi import APIRouter, Depends, HTTPException, Header, Body, status, Request
# from db import crud_main
from sqlalchemy.orm import Session
from fastapi.security import APIKeyHeader
from typing import Union, Optional, List
from typing_extensions import Annotated
from db import models, schemas
import datetime
from fastapi.responses import FileResponse
import os
from process.logger import logger
from db.base import get_db
import pandas as pd
KST = datetime.timezone(datetime.timedelta(hours=9))
router = APIRouter(
prefix="/images",
tags=["main"],
responses={404: {"description": "Not found"}},
)
# -----------------------------------------------------------------------------------------------
async def get_body(request: Request):
return await request.body()
# 이미지 제공
@router.post("/{path1}/{path2}/{path3}/{file_name}")
async def get_image(path1: str, path2: str, path3: str, file_name: str):
# 이미지 파일 경로 설정 (예: 서버의 특정 디렉토리)
image_path = os.path.join("images", path1, path2, path3, file_name)
# 이미지 파일이 존재하는지 확인
if not os.path.exists(image_path):
return {"error": "Image not found"}
# FileResponse를 사용하여 이미지 파일 반환
return FileResponse(image_path)
# 이미지 제공
@router.get("/{path1}/{path2}/{path3}/{file_name}")
async def get_image1(path1: str, path2: str, path3: str, file_name: str):
# if path1 != 'email':
# return {"error": "path is not allow"}
# 이미지 파일 경로 설정 (예: 서버의 특정 디렉토리)
image_path = os.path.join("images", path1, path2, path3, file_name)
# 이미지 파일이 존재하는지 확인
if not os.path.exists(image_path):
return {"error": "Image not found"}
# FileResponse를 사용하여 이미지 파일 반환
return FileResponse(image_path)