2026-05-19-23-23-50 回滚简历PDF下载文件名
This commit is contained in:
@@ -9,8 +9,8 @@ set -eu
|
||||
PUBLIC_FILE="/app/apps/web/.output/public/assets/file-D5WsIgJH.js"
|
||||
SSR_FILE="/app/apps/web/.output/server/_ssr/pdf-document-COfeOLVC.mjs"
|
||||
SERVER_INDEX_FILE="/app/apps/web/.output/server/index.mjs"
|
||||
PDF_FILENAME="王志博-医工智能外科简历.pdf"
|
||||
CACHE_BUST="rr-filename-20260519-cn"
|
||||
PDF_FILENAME="ZhiboWang-Resume.pdf"
|
||||
CACHE_BUST="rr-filename-20260519"
|
||||
|
||||
cp "$PUBLIC_FILE" "$PUBLIC_FILE.bak-filename" 2>/dev/null || true
|
||||
cp "$SSR_FILE" "$SSR_FILE.bak-filename" 2>/dev/null || true
|
||||
@@ -23,8 +23,8 @@ const crypto = require('crypto');
|
||||
const publicFile = '/app/apps/web/.output/public/assets/file-D5WsIgJH.js';
|
||||
const ssrFile = '/app/apps/web/.output/server/_ssr/pdf-document-COfeOLVC.mjs';
|
||||
const serverIndexFile = '/app/apps/web/.output/server/index.mjs';
|
||||
const pdfFilename = '王志博-医工智能外科简历.pdf';
|
||||
const cacheBust = 'rr-filename-20260519-cn';
|
||||
const pdfFilename = 'ZhiboWang-Resume.pdf';
|
||||
const cacheBust = 'rr-filename-20260519';
|
||||
|
||||
function makeEtag(buffer) {
|
||||
const digest = crypto.createHash('sha1').update(buffer).digest('base64').replace(/=+$/g, '');
|
||||
|
||||
44
工程分析/实现方案-2026-05-19-23-23-50.md
Normal file
44
工程分析/实现方案-2026-05-19-23-23-50.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# 实现方案-2026-05-19-23-23-50
|
||||
|
||||
## 实现方案文档路径
|
||||
|
||||
`工程分析/实现方案-2026-05-19-23-23-50.md`
|
||||
|
||||
## 修改目标
|
||||
|
||||
回滚上一条错误指令,将 PDF 下载文件名恢复为 `ZhiboWang-Resume.pdf`。
|
||||
|
||||
## 涉及路径
|
||||
|
||||
- `scripts/patch-reactive-resume-filename.sh`
|
||||
- `工程分析/需求分析-2026-05-19-23-23-50.md`
|
||||
- `工程分析/实现方案-2026-05-19-23-23-50.md`
|
||||
- `工程分析/测试方案-2026-05-19-23-23-50.md`
|
||||
- `工程分析/经验记录.md`
|
||||
|
||||
## 技术路线
|
||||
|
||||
1. 将脚本中的 `PDF_FILENAME` 恢复为 `ZhiboWang-Resume.pdf`。
|
||||
2. 将 Node 补丁逻辑中的 `pdfFilename` 恢复为 `ZhiboWang-Resume.pdf`。
|
||||
3. 将 `CACHE_BUST` 与 `cacheBust` 恢复为 `rr-filename-20260519`。
|
||||
4. 执行 `sh -n` 做脚本语法检查。
|
||||
5. 重新执行补丁脚本,更新运行中容器并等待 healthy。
|
||||
6. 验证 HTTP 静态资源中包含旧文件名且不再包含中文文件名。
|
||||
7. 创建回滚 commit,并尝试推送 Gitea。
|
||||
|
||||
## 兼容性与回滚方案
|
||||
|
||||
- 本次不改数据库、简历 JSON、Compose 或上传文件。
|
||||
- 如用户后续给出新的正确文件名,可再次改脚本变量并执行补丁脚本。
|
||||
- 当前选择新增回滚提交,保留历史可追溯性。
|
||||
|
||||
## 预计文件变更
|
||||
|
||||
- 更新:`scripts/patch-reactive-resume-filename.sh`
|
||||
- 新增:本次 `需求分析`、`实现方案`、`测试方案`
|
||||
- 更新:`工程分析/经验记录.md`
|
||||
|
||||
## 提交与部署策略
|
||||
|
||||
- commit message 使用:`2026-05-19-23-23-50 回滚简历PDF下载文件名`
|
||||
- 部署通过执行 `scripts/patch-reactive-resume-filename.sh reactive-resume-reactive-resume-1` 完成。
|
||||
48
工程分析/测试方案-2026-05-19-23-23-50.md
Normal file
48
工程分析/测试方案-2026-05-19-23-23-50.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# 测试方案-2026-05-19-23-23-50
|
||||
|
||||
## 测试方案文档路径
|
||||
|
||||
`工程分析/测试方案-2026-05-19-23-23-50.md`
|
||||
|
||||
## 静态检查
|
||||
|
||||
- 执行 `sh -n scripts/patch-reactive-resume-filename.sh`。
|
||||
- 搜索脚本确认包含 `ZhiboWang-Resume.pdf`。
|
||||
|
||||
## 部署验证
|
||||
|
||||
- 执行 `./scripts/patch-reactive-resume-filename.sh reactive-resume-reactive-resume-1`。
|
||||
- 确认容器 `reactive-resume-reactive-resume-1` 为 `healthy`。
|
||||
|
||||
## 业务验证
|
||||
|
||||
- 验证容器内 public JS 与 SSR 文件包含 `ZhiboWang-Resume.pdf`。
|
||||
- 验证 HTTP 静态资源 `/assets/file-D5WsIgJH.js` 包含 `ZhiboWang-Resume.pdf`。
|
||||
- 验证 HTTP 静态资源不再包含 `王志博-医工智能外科简历.pdf` 或 `王志博-医工智能外科-简历.pdf`。
|
||||
- 验证 `http://127.0.0.1:3003/api/health` 返回 healthy。
|
||||
- 验证 `http://127.0.0.1:3003/audience/resume` 返回 200。
|
||||
|
||||
## Git/Gitea 备份验证
|
||||
|
||||
- 创建本地回滚 commit。
|
||||
- 尝试 `git push origin main`。
|
||||
- 若 HTTP 凭据不可用,记录失败原因。
|
||||
|
||||
## 风险与回归关注点
|
||||
|
||||
- 浏览器缓存可能短暂保留旧中文 cache bust;脚本恢复 `rr-filename-20260519` 后应重新更新 importer 与 manifest。
|
||||
|
||||
## 实际执行结果
|
||||
|
||||
- `sh -n scripts/patch-reactive-resume-filename.sh`:通过。
|
||||
- 脚本搜索:`PDF_FILENAME` 与 `pdfFilename` 均恢复为 `ZhiboWang-Resume.pdf`,`CACHE_BUST` 与 `cacheBust` 均恢复为 `rr-filename-20260519`。
|
||||
- `./scripts/patch-reactive-resume-filename.sh reactive-resume-reactive-resume-1`:通过。
|
||||
- 容器状态:`reactive-resume-reactive-resume-1` 为 `healthy`。
|
||||
- 容器内验证:public JS 与 SSR 文件均包含 `ZhiboWang-Resume.pdf`。
|
||||
- 容器内中文残留验证:public JS 与 SSR 文件未检出 `王志博-医工智能外科`。
|
||||
- HTTP 静态资源验证:`/assets/file-D5WsIgJH.js` 返回内容包含 `ZhiboWang-Resume.pdf`。
|
||||
- Cache bust 验证:业务页面 import 已恢复为 `file-D5WsIgJH.js?v=rr-filename-20260519`。
|
||||
- 服务健康验证:`curl http://127.0.0.1:3003/api/health` 返回 `status: healthy`。
|
||||
- 公开简历页验证:`curl -I http://127.0.0.1:3003/audience/resume` 返回 `HTTP/1.1 200 OK`。
|
||||
- Git 本地备份 commit:已创建,提交信息为 `2026-05-19-23-23-50 回滚简历PDF下载文件名`。
|
||||
- Gitea 远端推送:执行 `git push origin main` 时失败,原因是 HTTP 远端 `http://192.168.31.5:5002` 无法读取用户名;未在命令行写入账号密码。
|
||||
18
工程分析/经验记录.md
18
工程分析/经验记录.md
@@ -37,3 +37,21 @@ C. 解决问题方案
|
||||
D. 后续如何避免问题
|
||||
|
||||
Gitea 推送前先检查认证方式。优先使用 SSH 或安全凭据助手;如果 HTTP remote 需要 token,应通过安全环境变量或凭据管理器提供,不要直接拼进 URL。
|
||||
|
||||
## 2026-05-19-23-23-50 回滚错误的 PDF 下载文件名指令
|
||||
|
||||
A. 具体问题
|
||||
|
||||
用户说明上一条修改 PDF 下载文件名的指令写错了,需要撤销中文文件名变更。
|
||||
|
||||
B. 产生问题原因
|
||||
|
||||
上一条需求将 Reactive Resume 的 PDF 下载文件名从 `ZhiboWang-Resume.pdf` 改为中文文件名;之后最新提交又把中文文件名调整为不带短横线版本。只回滚最新提交会仍然保留中文文件名,不能真正回到原始状态。
|
||||
|
||||
C. 解决问题方案
|
||||
|
||||
以原始文件名 `ZhiboWang-Resume.pdf` 为目标,直接恢复 `scripts/patch-reactive-resume-filename.sh` 中 shell 与 Node 两处文件名常量,并恢复 cache bust 为 `rr-filename-20260519`。随后重新执行补丁脚本,让运行中容器 public JS 与 SSR 文件同步恢复。
|
||||
|
||||
D. 后续如何避免问题
|
||||
|
||||
用户要求回滚时,先确认要回到哪一个历史状态,而不是只撤销最近一个 commit。涉及线上容器补丁时,Git 文件回滚后必须重新执行补丁脚本并验证 HTTP 静态资源。
|
||||
|
||||
41
工程分析/需求分析-2026-05-19-23-23-50.md
Normal file
41
工程分析/需求分析-2026-05-19-23-23-50.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 需求分析-2026-05-19-23-23-50
|
||||
|
||||
## 开始时间
|
||||
|
||||
2026-05-19-23-23-50
|
||||
|
||||
## 原始需求摘要
|
||||
|
||||
用户说明上一条“修改 PDF 下载文件名”的指令写错了,要求回滚。
|
||||
|
||||
## 业务目标
|
||||
|
||||
- 将 Reactive Resume PDF 下载文件名恢复到改名前的 `ZhiboWang-Resume.pdf`。
|
||||
- 同步恢复运行中容器的 public JS 与 SSR 下载文件名逻辑。
|
||||
- 保留本次回滚记录,避免后续误以为中文文件名仍是目标状态。
|
||||
|
||||
## 输入与输出
|
||||
|
||||
- 输入:当前最新脚本、当前 Docker 容器、相关 commit `d2edebe` 与 `d77954b`。
|
||||
- 输出:脚本恢复旧文件名、运行中服务恢复旧下载名、回滚分析与经验记录。
|
||||
|
||||
## 影响范围
|
||||
|
||||
- `scripts/patch-reactive-resume-filename.sh`
|
||||
- 运行中容器 `reactive-resume-reactive-resume-1`
|
||||
- `工程分析/` 本次回滚文档与经验记录
|
||||
|
||||
## 关键约束
|
||||
|
||||
- 使用非破坏性新增提交完成回滚,不使用 `git reset --hard`。
|
||||
- 不删除历史审计文档,新增回滚文档说明原因。
|
||||
- Gitea HTTP 远端可能仍缺少凭据,推送失败需要记录。
|
||||
|
||||
## 风险点
|
||||
|
||||
- 如果只改 Git 脚本,不重新执行脚本,线上容器仍会保持中文文件名。
|
||||
- 如果只回滚最新 `d77954b`,文件名会退到 `王志博-医工智能外科-简历.pdf`,仍然不是原始文件名。
|
||||
|
||||
## 默认假设
|
||||
|
||||
- “回滚一下”指回到用户提出中文文件名前的状态,即 `ZhiboWang-Resume.pdf`。
|
||||
Reference in New Issue
Block a user