quota: GET /api/quota (used=files size 总和 / quota 默认 10GB SZ_QUOTA env / remain / percent); 测试 7 项
This commit is contained in:
@@ -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):
|
||||
"""删除文件 (卷目录 + 入库记录)"""
|
||||
|
||||
Reference in New Issue
Block a user