Skip to content

fix: 修复音频续传校验与 CDN 重试 - #276

Closed
Aschenbath wants to merge 1 commit into
mainfrom
fix/download-resume-audit-20261112
Closed

Aschenbath wants to merge 1 commit into
mainfrom
fix/download-resume-audit-20261112

Conversation

@Aschenbath

Copy link
Copy Markdown
Collaborator

恢复下载时,如果服务器保留相同弱 ETag,而音频仅在后续分块发生变化,原实现可能拼接新旧版本并报告下载完成。本次在缺少可靠续传校验标识时逐块核对已有缓存,检测到变化后清空旧块,重试可重新下载一致内容。

  • 弱 ETag 不再跳过已有分块校验,也不再被同时返回的 Last-Modified 覆盖;强 ETag 和仅提供日期的正常续传仍只请求必要分块。
  • HTTP 408/425 使用现有网络重试策略,避免临时错误被误判为无效音频。
  • HTTP 503 等可重试响应遵守 Retry-After,暂停操作仍能立即中断等待。
  • HTTP 501/505 直接报告失败,避免无效重试;保留 429 的重试次数和最短冷却时间。

验证:14 个临时定向场景全部通过,覆盖上述错误、音频变化后的恢复、正常续传、连接重置、暂停冷却和 429 限流。同步到最新 main 后,dart analyze lib 无问题,git diff --check 通过。PR 仅修改 lib/services/audio_cache.dart。

@teikengstudio

Copy link
Copy Markdown
Owner

冻结提交 7934022 的改动已随 #273 汇总合入 main,main CI 已通过。本 PR 据此关闭,未单独执行 merge;1.1.10 正式发行构建已启动。

@teikengstudio
teikengstudio deleted the fix/download-resume-audit-20261112 branch November 13, 2026 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants