38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
|
|
# api/v1/history_router.py
|
||
|
|
from fastapi import APIRouter, Depends
|
||
|
|
import urllib.parse
|
||
|
|
|
||
|
|
from services.storage_integration_rustfs import StorageIntegrationService
|
||
|
|
from database.database import get_db_session
|
||
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||
|
|
|
||
|
|
router = APIRouter()
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/history")
|
||
|
|
@router.post("/history")
|
||
|
|
async def get_file_history(db_session: AsyncSession = Depends(get_db_session)):
|
||
|
|
"""获取按文件名分组的文件历史记录(支持多上传)"""
|
||
|
|
storage_service = StorageIntegrationService()
|
||
|
|
file_groups = await storage_service.get_all_file_groups(db_session)
|
||
|
|
|
||
|
|
return {
|
||
|
|
"total_files": len(file_groups),
|
||
|
|
"files": file_groups
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
@router.get("/history/{filename}")
|
||
|
|
@router.post("/history/{filename}")
|
||
|
|
async def get_file_records(filename: str, db_session: AsyncSession = Depends(get_db_session)):
|
||
|
|
"""获取指定文件名的所有上传记录(支持多上传历史)"""
|
||
|
|
decoded_filename = urllib.parse.unquote(filename)
|
||
|
|
|
||
|
|
storage_service = StorageIntegrationService()
|
||
|
|
file_records = await storage_service.get_file_history_by_filename(
|
||
|
|
db_session,
|
||
|
|
decoded_filename
|
||
|
|
)
|
||
|
|
|
||
|
|
return file_records
|