mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2026-03-13 09:31:31 +08:00
* WIP * update codes * update codes * update filter_data_permission * Fix schema * Fix issues
28 lines
1.1 KiB
Python
28 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
from typing import Annotated
|
|
|
|
from fastapi import APIRouter, File, UploadFile
|
|
|
|
from backend.common.dataclasses import UploadUrl
|
|
from backend.common.enums import FileType
|
|
from backend.common.response.response_schema import ResponseSchemaModel, response_base
|
|
from backend.common.security.jwt import DependsJwtAuth
|
|
from backend.utils.file_ops import file_verify, upload_file
|
|
|
|
router = APIRouter()
|
|
|
|
|
|
@router.post('/image', summary='上传图片', dependencies=[DependsJwtAuth])
|
|
async def upload_image(file: Annotated[UploadFile, File()]) -> ResponseSchemaModel[UploadUrl]:
|
|
file_verify(file, FileType.image)
|
|
filename = await upload_file(file)
|
|
return response_base.success(data={'url': f'/static/upload/{filename}'})
|
|
|
|
|
|
@router.post('/video', summary='上传视频', dependencies=[DependsJwtAuth])
|
|
async def upload_video(file: Annotated[UploadFile, File()]) -> ResponseSchemaModel[UploadUrl]:
|
|
file_verify(file, FileType.video)
|
|
filename = await upload_file(file)
|
|
return response_base.success(data={'url': f'/static/upload/{filename}'})
|