"""存储目标下的文件列表 API。""" from fastapi import APIRouter, HTTPException from app.core.storage.factory import create_storage from app.deps import AdminUser, DBSession from app.models.storage import Storage router = APIRouter(prefix="/storages", tags=["storages"]) @router.get("/{storage_id}/files") async def list_storage_files( storage_id: int, db: DBSession, _: AdminUser, prefix: str = "", ) -> list[dict]: row = db.get(Storage, storage_id) if not row: raise HTTPException(status_code=404, detail="Not found") storage = create_storage(row) files = await storage.list(prefix=prefix) return [ { "key": f.key, "size": f.size, "last_modified": f.last_modified, } for f in files ]