Files
Smb-Server/app/monitor.py
T
bi c790e43cdf feat: SMB文件服务器管理后台 - 完整版本
- 用户管理:增删改、批量导入(Excel模板)、admin保护
- 部门管理:增删改(含回收站恢复机制)、删除保护(有用户不可删)
- 权限管理:部门内角色(admin/readwrite/readonly/none)
- 监控页面:CPU/内存/磁盘实时监控
- 日志页面:操作日志查询
- SMB权限:用户文件夹700(member)/750(admin)、ACL继承
- admin跨目录访问:通过setfacl ACL实现
2026-07-13 23:03:03 +08:00

42 lines
1.2 KiB
Python

"""监控路由"""
import json
from fastapi import APIRouter, Depends
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from app.database import get_session
from app.models import DiskUsageSnapshot
from app.models import Department
from app.schemas import DiskUsageResponse
from app.services.disk_monitor import get_disk_usage, get_dept_usages
router = APIRouter()
@router.get("/disk", response_model=DiskUsageResponse)
async def get_disk(
current_user=Depends(__import__("app.routers.auth", fromlist=["get_current_user"]).get_current_user),
session: AsyncSession = Depends(get_session)
):
usage = get_disk_usage()
dept_usages = get_dept_usages()
# 保存快照
snapshot = DiskUsageSnapshot(
total_space=usage["total_space"],
used_space=usage["used_space"],
free_space=usage["free_space"],
usage_percent=usage["usage_percent"],
dept_usages=json.dumps(dept_usages, ensure_ascii=False)
)
session.add(snapshot)
await session.commit()
return DiskUsageResponse(
total_space=usage["total_space"],
used_space=usage["used_space"],
free_space=usage["free_space"],
usage_percent=usage["usage_percent"],
dept_usages=dept_usages
)