feat: bổ sung phần profile của user
This commit is contained in:
+28
-1
@@ -6,6 +6,7 @@ from fastapi import APIRouter, UploadFile, File, HTTPException, Query, Depends
|
||||
from fastapi.responses import FileResponse
|
||||
from pydantic import BaseModel
|
||||
from typing import Optional, List
|
||||
import json
|
||||
from app.config import settings
|
||||
from app.api.v1.auth import get_current_user
|
||||
from app.api.v1.projects import get_optional_user
|
||||
@@ -67,7 +68,16 @@ async def upload_audio(file: UploadFile = File(...), current_user: Optional[dict
|
||||
with open(file_path, "wb") as f:
|
||||
content = await file.read()
|
||||
f.write(content)
|
||||
|
||||
|
||||
# Save original filename as sidecar metadata
|
||||
import json
|
||||
meta_path = os.path.join(settings.UPLOADS_DIR, file_id + ".meta")
|
||||
try:
|
||||
with open(meta_path, "w") as mf:
|
||||
json.dump({"original_name": file.filename}, mf)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Trigger celery task
|
||||
from app.tasks.worker import analyze_audio_task
|
||||
task = analyze_audio_task.delay(file_id)
|
||||
@@ -357,8 +367,18 @@ async def list_user_files(req: MyFilesRequest, current_user: dict = Depends(get_
|
||||
if filename in files_map:
|
||||
files_map[filename]["size_mb"] = round(files_map[filename]["size_mb"] + stat.st_size / (1024 * 1024), 2)
|
||||
else:
|
||||
original_name = filename
|
||||
meta_path = os.path.join(directory, filename + ".meta")
|
||||
if os.path.isfile(meta_path):
|
||||
try:
|
||||
with open(meta_path, "r") as mf:
|
||||
meta = json.load(mf)
|
||||
original_name = meta.get("original_name", filename)
|
||||
except Exception:
|
||||
pass
|
||||
files_map[filename] = {
|
||||
"file_id": filename,
|
||||
"original_name": original_name,
|
||||
"size_mb": round(stat.st_size / (1024 * 1024), 2),
|
||||
"created_at": stat.st_mtime,
|
||||
"type": type_label,
|
||||
@@ -390,6 +410,13 @@ async def delete_user_file(file_id: str, current_user: dict = Depends(get_curren
|
||||
deleted = True
|
||||
except Exception:
|
||||
pass
|
||||
# Clean up sidecar metadata file
|
||||
meta_path = os.path.join(directory, file_id + ".meta")
|
||||
if os.path.isfile(meta_path):
|
||||
try:
|
||||
os.remove(meta_path)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
if not deleted:
|
||||
raise HTTPException(status_code=404, detail="Không tìm thấy tệp trên server")
|
||||
|
||||
Reference in New Issue
Block a user