quota: GET /api/quota (used=files size 总和 / quota 默认 10GB SZ_QUOTA env / remain / percent); 测试 7 项

This commit is contained in:
lou
2026-08-10 01:42:51 +08:00
parent dbf32fe55e
commit 95ced31222
4 changed files with 33 additions and 1 deletions
+14 -1
View File
@@ -25,7 +25,7 @@ from fastapi.responses import FileResponse, JSONResponse
from db import ServerDB
from receiver import Receiver, ReceiverError
from settings import STORAGE_ROOT, TMP_ROOT, TOKEN
from settings import QUOTA_BYTES, STORAGE_ROOT, TMP_ROOT, TOKEN
from storage import Storage
from task_manager import TaskManager
@@ -63,6 +63,19 @@ async def list_files():
return {"files": db.list_files()}
@app.get("/api/quota", dependencies=[Depends(verify_token)])
async def quota():
"""用户空间配额: 已用 (files size 总和) / 配额 / 剩余"""
used = db.sum_files_size()
remain = max(QUOTA_BYTES - used, 0)
return {
"used_bytes": used,
"quota_bytes": QUOTA_BYTES,
"remain_bytes": remain,
"percent": round(used * 100 / QUOTA_BYTES, 1) if QUOTA_BYTES else 0,
}
@app.delete("/api/files/{file_id}", dependencies=[Depends(verify_token)])
async def delete_file(file_id: str):
"""删除文件 (卷目录 + 入库记录)"""