文件区点 .pptx 不再只能下载。后端转 PDF,前端复用现成 PDF iframe。 - web/pptx_render.py: pptx_to_pdf() 调 soffice,独立临时 profile 绕单 profile 锁、60s 超时 kill;缓存 .preview/<stem>.<hash>.pdf(hash=mtime+size,源改即 失效,prune 旧 hash);soffice 缺失抛 SofficeNotFoundError - web/app.py: GET /v1/files/preview_pdf —— _safe_join 防穿越 + 仅 .ppt(x) + per-path asyncio.Lock 防并发重转 + run_in_executor 不堵事件循环;缺失 501/失败 500 - preview.js: ppt 组 + main/mini 共用 _showPptAsPdf(spinner loading + 失败回退下载) - dev.html: .preview-spinner(复用 @keyframes spin) - 转换跑 web host 进程不进沙盒;部署 host 装 libreoffice-impress + fonts-noto-cjk (sandbox Dockerfile 不动) - tests/test_pptx_render.py: 10 例(缓存命中跳 soffice/源变失效+prune/缺失降级/越界拒绝) - 文档:RUN.md(host 装 + 故障兜底 2 行)、PROGRESS.md Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| js | ||
| vendor | ||
| dev.html | ||