mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 13:12:24 +00:00
26 lines
840 B
Python
26 lines
840 B
Python
from typing import Annotated
|
|
|
|
from fastapi import APIRouter, Depends, File, UploadFile
|
|
|
|
from backend.common.dataclasses import UploadUrl
|
|
from backend.common.response.response_schema import ResponseSchemaModel, response_base
|
|
from backend.common.security.permission import RequestPermission
|
|
from backend.common.security.rbac import DependsRBAC
|
|
from backend.utils.file_ops import upload_file, upload_file_verify
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post(
|
|
'/upload',
|
|
summary='本地文件上传',
|
|
dependencies=[
|
|
Depends(RequestPermission('sys:file:upload')),
|
|
DependsRBAC,
|
|
],
|
|
)
|
|
async def upload_files(file: Annotated[UploadFile, File()]) -> ResponseSchemaModel[UploadUrl]:
|
|
upload_file_verify(file)
|
|
filename = await upload_file(file)
|
|
return response_base.success(data={'url': f'/static/upload/{filename}'})
|