35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
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")
|
|
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)
|
|
async with aiofiles.open(file_path, "wb") as f:
|
|
await f.write(await file.read())
|
|
lookbook_list.append(file_path)
|
|
|
|
# 将任务放入后台异步执行
|
|
background_tasks.add_task(process_lookbook_task, lookbook_list, tag, year)
|
|
|
|
return {"message": "Lookbooks are being processed in the background."}
|