# 公共工具 API ## 1. 附件上传 ```bash POST /api/v1/upload Content-Type: multipart/form-data ``` 返回: ```json { "code": 0, "message": "success", "data": { "url": "/media/uploads/." } } ``` 说明: - 支持两种后端:本地磁盘与 S3 兼容对象存储,可通过环境变量 `FILE_STORAGE_BACKEND`(`local`/`s3`)切换。 - 本地模式默认将文件保存到服务器的 `/var/www/classroom-manager/uploads/`,可用 `LOCAL_UPLOAD_DIR` 和 `LOCAL_UPLOAD_URL_PREFIX` 覆盖存储路径与访问前缀。 - S3 模式需要提供 `S3_BUCKET_NAME`、`S3_ACCESS_KEY_ID`、`S3_SECRET_ACCESS_KEY`,可选 `S3_ENDPOINT_URL` 或 `S3_BASE_URL` 用于自定义访问域名(适配任意 S3 兼容服务)。 - 需要登录(`Authorization: Bearer `)。 - 当前实现为本地磁盘上传,返回值为站内可访问的相对路径。 ## 2. 获取系统配置 ```bash GET /api/v1/config ``` 权限:需要登录。 返回: ```json { "code": 0, "message": "success", "data": { "season": "winter", "season_display": "冬季作息", "semester_start_date": "2026-02-17", "updated_at": "2026-01-20T10:00:00+08:00" } } ``` ## 3. 设置季节作息(仅 superadmin) ```bash POST /api/v1/config/season ``` Body: ```json { "season": "winter" } ``` 返回:与获取系统配置相同。