feat(api): 修改oss
- 替换开发环境API基础URL为本地服务地址 - 实现签名URL本地缓存机制,解决微信按URL缓存图片导致重复下载问题 - 添加缓存清理功能,包括过期清理和按需删除特定缓存项 - 集成阿里云OSS上传功能,支持直传减少服务器带宽占用 - 优化头像地址处理逻辑,统一使用签名缓存避免地址频繁变化 - 移除过时的OSS上传示例文件oss-upload.js - 更新课程页面实现跳转第三方小程序功能 - 调整打卡记录图片地址获取方式,统一使用新的签名缓存逻辑 - 优化图片上传流程,增加压缩处理和批量上传支持 - 完善认证模块中的缓存清理逻辑,切换账号时清除相关图片缓存 - 添加后端环境变量配置模板和代理文档说明
This commit is contained in:
@@ -1,9 +1,30 @@
|
||||
# 直接依赖。全部是「>= 下限」约束 —— 注意服务器跑在 **Python 3.9**,
|
||||
# pip 会自动退到「声明支持 3.9 的最高版本」:fastapi / uvicorn / python-multipart / pytest
|
||||
# 的最新版都已要求 >=3.10,所以服务器上装到的会比开发机旧一档(这是 pip 的正常行为,不是错误)。
|
||||
fastapi>=0.110
|
||||
# 代码里有 8 个文件直接 `from pydantic import BaseModel`。
|
||||
# 它本来是 fastapi 的传递依赖(装了 fastapi 就会有),所以一直没写进来;
|
||||
# 2026-10-09 补上 —— 「直接 import 的就要直接声明」,否则 fastapi 哪天换掉它就会静默炸。
|
||||
# 下限定 2.0:现有各环境实测都是 2.x,且 fastapi>=0.110 接受 <3。
|
||||
pydantic>=2.0
|
||||
uvicorn[standard]>=0.29
|
||||
pymysql>=1.1
|
||||
# ⚠️ Python 3.9 上 pytest / python-multipart 也会退版本,属正常。
|
||||
# ⚠️ PyJWT:2026-10-09 全仓库扫描确认**没有任何地方 `import jwt`** ——
|
||||
# 鉴权走的是 `auth_sessions` 里的 64 位 hex token,`config.JWT_*` 只是历史命名。
|
||||
# 但 `python-multipart` 不一样:虽然我们也不 import 它,FastAPI 处理
|
||||
# `File(...)` / `Form(...)` 时**运行时需要它**,删了上传接口就 500,必须留着。
|
||||
PyJWT>=2.8
|
||||
httpx>=0.27
|
||||
python-multipart>=0.0.9
|
||||
pytest>=8.0
|
||||
DBUtils>=3.0
|
||||
# 2026-10-09 补记:`config.py` 一直在用 `from dotenv import load_dotenv`,
|
||||
# 但这份清单里从来没有它 —— 服务器上是手工装的,没有记录。
|
||||
# 换机器 / 重建 venv 时就会 ImportError,所以必须写进来。
|
||||
python-dotenv>=1.0
|
||||
# 打卡附件 / 头像写 OSS(2026-09-22 新增)。
|
||||
# 纯 Python 包,但 PyPI 上只有 sdist(没有 wheel)→ 会走源码安装,不需要编译器。
|
||||
# 它依赖的 `crcmod` 是 C 扩展,好在 setup.py **编译失败时会退回纯 Python 实现**,
|
||||
# 所以没有编译器的机器也能装上(只是 CRC 校验慢一点)。
|
||||
oss2>=2.17
|
||||
|
||||
Reference in New Issue
Block a user