fix(worker): 素材下载storage_key为空时fallback到file_url,兼容存量数据 #485

Merged
auto-approve-bot merged 1 commits from fix/download-asset-storage-key-fallback into develop 2026-07-17 20:08:26 +08:00
Owner

问题

#480 把素材下载从 file_url 改成 storage_key 字段后,存量数据的 storage_key 都是空的(新字段默认空字符串),导致所有素材下载失败。

根因

  • 老数据的 assets.storage_key 字段为空
  • render_adapter._download_assets 直接读 a.storage_key 且有 if a.storage_key 过滤,空值被全部过滤掉
  • 其他三处下载逻辑(BGM素材库、legacy路径等)同样的问题
  • repository 层的 _to_domain 有 fallback(storage_key or file_url),但下载逻辑直接查 AssetModel 不走 repository

修复

4处下载逻辑统一加 fallback:storage_key 为空时用 file_url

  1. render_adapter._download_assets — 主链路素材下载
  2. render_adapter._prepare_bgm — BGM素材库下载
  3. edit_plan_generation legacy路径 — 素材下载
  4. generation.py BGM — 素材库下载

测试

  • 新增 fallback 成功场景单测(storage_key空+file_url有值→下载成功)
  • 保留双空跳过场景单测
  • 36个render_adapter测试全绿
  • 3个asset_repository测试全绿
  • black/isort/ruff 全部通过
## 问题 #480 把素材下载从 file_url 改成 storage_key 字段后,存量数据的 storage_key 都是空的(新字段默认空字符串),导致所有素材下载失败。 ## 根因 - 老数据的 assets.storage_key 字段为空 - render_adapter._download_assets 直接读 a.storage_key 且有 if a.storage_key 过滤,空值被全部过滤掉 - 其他三处下载逻辑(BGM素材库、legacy路径等)同样的问题 - repository 层的 _to_domain 有 fallback(storage_key or file_url),但下载逻辑直接查 AssetModel 不走 repository ## 修复 4处下载逻辑统一加 fallback:storage_key 为空时用 file_url 1. render_adapter._download_assets — 主链路素材下载 2. render_adapter._prepare_bgm — BGM素材库下载 3. edit_plan_generation legacy路径 — 素材下载 4. generation.py BGM — 素材库下载 ## 测试 - 新增 fallback 成功场景单测(storage_key空+file_url有值→下载成功) - 保留双空跳过场景单测 - 36个render_adapter测试全绿 - 3个asset_repository测试全绿 - black/isort/ruff 全部通过
xiaoxia added 1 commit 2026-07-17 20:03:25 +08:00
fix(worker): 素材下载storage_key为空时fallback到file_url,兼容存量数据
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 11s
AI Code Review / AI Code Review (pull_request) Failing after 36s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 48s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 35s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 3m16s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 3m33s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m20s
Auto Merge CI PRs / Auto Merge on CI Green + Approved (pull_request) Successful in 5m1s
d3ae532e4e
- render_adapter _download_assets: storage_key为空时fallback到file_url
- render_adapter _prepare_bgm: BGM素材库下载同样加fallback
- edit_plan_generation legacy路径: 加fallback
- generation.py BGM下载: 加fallback
- 单元测试同步更新,新增fallback成功场景测试
auto-approve-bot approved these changes 2026-07-17 20:06:59 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-17 20:06:59 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit b3728b6a27 into develop 2026-07-17 20:08:26 +08:00
auto-approve-bot deleted branch fix/download-asset-storage-key-fallback 2026-07-17 20:08:26 +08:00
Sign in to join this conversation.