feat: add rbac-backed settings modules

This commit is contained in:
wren
2026-04-29 22:25:06 +08:00
parent b3ad4a6f33
commit 3a58f19d6c
23 changed files with 2979 additions and 7 deletions
+20 -1
View File
@@ -2,15 +2,18 @@
from __future__ import annotations
import mimetypes
import sys
from contextlib import asynccontextmanager
from pathlib import Path
from fastapi import FastAPI
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import Response
from fastapi_admin.config import APP_NAME, APP_CORS_ORIGINS
from fastapi_admin.config._loader import _find_project_root
from fastapi_common.fastapi_common_storage.oss_client import OssClient
# 确保项目根在 sys.path
_PROJECT_ROOT = _find_project_root()
@@ -62,6 +65,22 @@ def create_app() -> FastAPI:
from fastapi_admin.bootstrap_parts.controllers import register_controllers
register_controllers(app)
@app.get("/docauditai/{ObjectPath:path}")
async def GetCompatObject(ObjectPath: str):
"""兼容旧前端的对象访问路径,优先读取新桶对象。"""
Client = OssClient()
CandidateBuckets = [Client.bucket, "docauditai"]
for BucketName in CandidateBuckets:
try:
if not Client.ObjectExists(ObjectPath, Bucket=BucketName):
continue
Content = Client.DownloadBytes(ObjectPath, Bucket=BucketName)
MediaType = mimetypes.guess_type(ObjectPath)[0] or "application/octet-stream"
return Response(content=Content, media_type=MediaType)
except Exception:
continue
raise HTTPException(status_code=404, detail="Object not found")
return app