Files
sora_python/app/api/api_process_lookbooks.py

35 lines
1.0 KiB
Python
Raw Permalink Normal View History

import logging
import os
from typing import List
import aiofiles
from fastapi import UploadFile, File, APIRouter, BackgroundTasks, Form
from app.service.lookbooks.service import process_lookbook_task # 引入服务逻辑
logger = logging.getLogger()
router = APIRouter()
@router.post("/process-lookbooks")
2024-10-21 16:57:57 +08:00
async def process_lookbooks(
background_tasks: BackgroundTasks,
files: List[UploadFile] = File(...),
tag: str = Form(...),
year: str = Form(...)
):
lookbook_dir = "service/lookbooks/temp_lookbooks"
os.makedirs(lookbook_dir, exist_ok=True)
lookbook_list = []
for file in files:
file_path = os.path.join(lookbook_dir, file.filename)
2024-10-21 16:57:57 +08:00
async with aiofiles.open(file_path, "wb") as f:
await f.write(await file.read())
lookbook_list.append(file_path)
2024-10-21 16:57:57 +08:00
# 将任务放入后台异步执行
background_tasks.add_task(process_lookbook_task, lookbook_list, tag, year)
2024-10-21 16:57:57 +08:00
return {"message": "Lookbooks are being processed in the background."}