import os from typing import Any, List from pydantic_settings import BaseSettings, SettingsConfigDict class UploadSettings(BaseSettings): """ 上传配置 """ model_config = SettingsConfigDict(env_prefix='app_', extra='ignore') upload_prefix: str = 'profile' upload_path: str = 'vapy_admin/upload_path' upload_machine: str = 'A' allowed_extension: List[str] = [ # 图片 'bmp', 'gif', 'jpg', 'jpeg', 'png', # word excel powerpoint 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'html', 'htm', 'txt', # 压缩文件 'rar', 'zip', 'gz', 'bz2', # 视频格式 'mp4', 'avi', 'rmvb', # pdf 'pdf', ] download_path: str = 'vapy_admin/download_path' def __init__(self, **values: Any): super().__init__(**values) if not os.path.exists(self.upload_path): os.makedirs(self.upload_path) if not os.path.exists(self.download_path): os.makedirs(self.download_path)