Skip to content

fix: 修复私有资源下载鉴权与镜像重试 - #79

Merged
wuziqian211 merged 3 commits into
mainfrom
fix-private-download-auth
Aug 16, 2026
Merged

fix: 修复私有资源下载鉴权与镜像重试#79
wuziqian211 merged 3 commits into
mainfrom
fix-private-download-auth

Conversation

@happycola233

Copy link
Copy Markdown
Owner

背景

关联 #76

排查发现,部分资源返回 400 InvalidArgument 并非源文件损坏,而是程序访问 private CDN 时的鉴权方式与官网不一致。

当前程序即使设置了 Access Token,也只会修改请求头,没有向 private 下载 URL 附加 accessToken。因此,部分权限较严格的资源仍然无法下载。

修改内容

  • 设置 Access Token 后,在实际请求 private CDN 时临时附加 accessToken 查询参数;
  • 不将含有 Token 的请求 URL 写入下载状态、错误提示或日志;
  • 保留未设置 Token 时原有的匿名访问行为;
  • 支持 R1、R2、R3 私有下载镜像自动重试;
  • 解析对象存储返回的 XML 错误码;
  • 区分未设置 Token、Token 失效及普通服务器错误;
  • 对网络异常中的 Access Token 进行脱敏;
  • 在相关鉴权和脱敏逻辑中补充中文注释;
  • 增加 Token 传递、匿名访问、镜像重试、错误解析及凭据脱敏测试。

验证结果

  • Python 编译检查通过;
  • 17 项单元测试全部通过;
  • 使用真实 Access Token 验证 bug: 部分资源下载提示 400 错误 #76 中此前返回 400 的 6 个资源,均在 R1 首次请求返回 200:
    • 二年级学生用书
    • 教师用书:足球
    • 教师用书:篮球
    • 教师用书:排球
    • 教师用书:田径类运动
    • 教师用书:中华传统体育类运动

补充说明

#76 评论中提到的“文件名过长”属于独立问题,本次 PR 仅处理 private CDN 鉴权、镜像重试和相关错误提示,不包含文件名处理逻辑。

@wuziqian211 wuziqian211 added 漏洞/bug Something isn't working good first issue Good for newcomers 鉴权/auth labels Aug 16, 2026
@wuziqian211 wuziqian211 linked an issue Aug 16, 2026 that may be closed by this pull request
3 tasks
@wuziqian211
wuziqian211 merged commit 2efcd89 into main Aug 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

鉴权/auth 漏洞/bug Something isn't working good first issue Good for newcomers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: 部分资源下载提示 400 错误

2 participants