classifier-general / app /services /file_storage_service.py
AyoubChLin's picture
feat: initial commit of Classifier General API with FastAPI
50231a8
raw
history blame contribute delete
872 Bytes
from pathlib import Path
from uuid import uuid4
from fastapi import UploadFile
from app.core.config import settings
class FileStorageService:
def __init__(self) -> None:
settings.static_dir.mkdir(parents=True, exist_ok=True)
settings.upload_dir.mkdir(parents=True, exist_ok=True)
def save_upload(self, upload_file: UploadFile) -> Path:
original_name = Path(upload_file.filename or "uploaded_file").name
safe_name = original_name.replace("/", "_")
target_path = settings.upload_dir / f"{uuid4().hex}_{safe_name}"
with target_path.open("wb") as destination:
while True:
chunk = upload_file.file.read(1024 * 1024)
if not chunk:
break
destination.write(chunk)
return target_path
file_storage_service = FileStorageService()