feat(api): 修改oss

- 替换开发环境API基础URL为本地服务地址
- 实现签名URL本地缓存机制,解决微信按URL缓存图片导致重复下载问题
- 添加缓存清理功能,包括过期清理和按需删除特定缓存项
- 集成阿里云OSS上传功能,支持直传减少服务器带宽占用
- 优化头像地址处理逻辑,统一使用签名缓存避免地址频繁变化
- 移除过时的OSS上传示例文件oss-upload.js
- 更新课程页面实现跳转第三方小程序功能
- 调整打卡记录图片地址获取方式,统一使用新的签名缓存逻辑
- 优化图片上传流程,增加压缩处理和批量上传支持
- 完善认证模块中的缓存清理逻辑,切换账号时清除相关图片缓存
- 添加后端环境变量配置模板和代理文档说明
This commit is contained in:
王宏豪
2026-10-10 10:27:00 +08:00
parent 3f1a13936d
commit faa114503f
9 changed files with 249 additions and 15 deletions

33
.env
View File

@@ -2,11 +2,15 @@ WECHAT_APPID=wx0f576e94afa52e1a
WECHAT_SECRET=c91063c6b923a6ddba326368488b88c2
JWT_SECRET=6e6b877bb67669a68d2c1f0c1e1192340293595d2443a3469b4a28c0a68be9db
ADMIN_KEY=870b5219532c1a77a405872f555c7f5cdeec23093740d6793f4e988ebcc70bfc
MYSQL_HOST=127.0.0.1
MYSQL_HOST=47.116.118.42
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=MingYuan20251112.!@#
MYSQL_USER=db_clock_user
MYSQL_PASSWORD=CLOCK_user@MY101&&%%
MYSQL_DB=mys_info_test
#MYSQL_HOST=127.0.0.1
#MYSQL_PORT=3306
#MYSQL_USER=root
#MYSQL_PASSWORD=MingYuan20251112.!@#
SURVEY_DB=myxhxc
PHONE_HMAC_KEY=MingYuan2026AuthKey
H5_BASE_URL=https://m.muguaclub.cn
@@ -14,4 +18,25 @@ FEEDBACK_DIR=/home/introduction/feedback
COURSE_VOTES_FILE=/home/introduction/test/course_votes.json
PLAN_ATTACH_DIR=/home/static/plan
STATIC_ROOT=/home/static
AVATAR_DIR=/home/static/avatars
AVATAR_DIR=/home/static/avatars
# ── 阿里云 OSS(打卡附件 + 头像)────────────────────────────
# 建议用只授权该 Bucket 的 RAM 子账号,不要用主账号 AK。
# 这四项缺任意一项,后端就整体按「OSS 未启用」处理:上传落磁盘、读接口返回相对路径。
# ⚠️ 值不要加引号、不要在同一行写注释(python-dotenv 会把这些当值的一部分解析)。
OSS_ACCESS_KEY_ID=LTAI5t7SA4oSowCAiXBUmmgS
OSS_ACCESS_KEY_SECRET=qmHZaZqCvlLdQ5CbxNepxa6omx2r9b
OSS_ENDPOINT=oss-cn-shanghai.aliyuncs.com
OSS_BUCKET=mingyuan-oss
OSS_REGION=cn-shanghai
# (可选)对外访问域名;仅签名 URL 用,此项保留备查
OSS_PUBLIC_BASE_URL=mingyuan-1837720343614130.oss-cn-shanghai.oss-accesspoint.aliyuncs.com
# 绑定的自定义域名(例:https://oss.muguaclub.cn)。**必须填**,否则签名 URL 落在
# *.aliyuncs.com 上,而那个域名加不进小程序「downloadFile 合法域名」白名单。
# ⚠️ 没有绑自定义域名时必须留空 —— 若填成裸 endpoint(oss-cn-shanghai.aliyuncs.com),
# public_host() 会直接拿它当上传域名,拼不出 bucket 前缀,直传 OSS 会 404。
OSS_PUBLIC_ENDPOINT=
# 签名 URL 有效期(秒),上限 604800(7 天)
OSS_URL_EXPIRE=604800