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

34
docker-compose.yml Normal file
View File

@@ -0,0 +1,34 @@
# ============================================================
# 明缘云道场 · 后端 生产环境(端口 8001)
#
# 用法(在 wechat_backend/ 目录,服务器上已放好 .env):
# docker compose build && docker compose up -d
# docker compose logs -f
# docker compose down
# ============================================================
services:
clock-api:
build: .
image: clock-api:prd
container_name: clock-api-prd
# Linux 服务器用 host 网络:MySQL 走 localhost/内网IP 直连,
# 端口 8001 直接监听宿主机,nginx 反代到 127.0.0.1:8001 无需改动。
# (这是最贴近现状、迁移最小的选择;若要走 bridge,见部署方案 §网络模式)
network_mode: host
restart: unless-stopped
env_file:
- .env # 宿主机上的 .env(运行时注入,绝不进镜像)
environment:
- TZ=Asia/Shanghai
- PORT=8001 # 生产端口
# - WORKERS=4 # 并发上来后再打开(状态全在 DB/OSS,多进程安全)
volumes:
# 反馈截图 + 课程投票仍走本地磁盘(不在 OSS 化范围内),必须挂出持久化,
# 否则容器重建数据丢失。容器内路径与 .env 的 FEEDBACK_DIR / COURSE_VOTES_FILE 一致。
- /home/introduction/feedback:/home/introduction/feedback
- /home/introduction/test/course_votes.json:/home/introduction/test/course_votes.json
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"