Files
CloudSearch/source_clean/docs/superpowers/plans/2026-05-23-single-container-drive-p0.md

3.7 KiB
Raw Permalink Blame History

CloudSearch 单容器网盘能力 P0 实现计划

面向 AI 代理的工作者: 必需子技能:使用 superpowers:subagent-driven-development(推荐)或 superpowers:executing-plans 逐任务实现此计划。步骤使用复选框(- [ ])语法来跟踪进度。

目标: 将 UC 网盘转存能力和主应用云盘 driver 分发能力集成进 source_clean,由现有 CloudSearch_App 单容器构建和运行,不新增长期 transfer 容器。

架构: 在 Node/TypeScript 主应用内新增 UcDriver 和轻量 driver factory。saveFromShare()、凭据验证、连接测试仍走现有 cloud_configssave_records/api/save 路径,只扩展 uc 类型,不改变前端主流程。

技术栈: Node 20 fetch、TypeScript commonjs、Express、better-sqlite3、Vitest、Docker Compose。


文件结构

  • 创建:src/cloud/drivers/uc-api.ts — UC API 常量、请求头、URL 解析、任务轮询辅助。
  • 创建:src/cloud/drivers/uc.driver.ts — UC Cookie 验证、7 步转存、创建新分享,对齐现有 driver 返回结构。
  • 创建:src/cloud/drivers/uc.driver.test.ts — UC driver 红绿回归测试,mock fetch 验证 API 流程。
  • 创建:src/cloud/driver-factory.ts — 根据 cloud_type 创建 driver,避免 credential.service.tscloud.service.ts 分散 switch。
  • 创建:src/cloud/driver-factory.test.ts — 验证 uc 使用 UcDriver,未知类型返回 null
  • 修改:src/cloud/cloud.service.ts — 保存入口支持 uc,复用统一 driver factory。
  • 修改:src/cloud/credential.service.ts — Cookie 测试和运行前凭据验证支持 uc

任务 1:写失败测试

  • 编写 src/cloud/driver-factory.test.ts:断言 createCloudDriver(uc, {cookie}) 产物 class 为 UcDriverunknownnull
  • 编写 src/cloud/drivers/uc.driver.test.ts:断言 UC URL 解析、Cookie 长度校验、mock fetch 的完整转存链路。
  • 运行:npm test -- src/cloud/driver-factory.test.ts src/cloud/drivers/uc.driver.test.ts
  • 预期:失败,原因是 driver-factoryuc.driver 不存在。

任务 2:实现 UC driver 和 factory

  • 新增 uc-api.tsUC_API_BASE=https://pc-api.uc.cnUC_SHARE_APIgetUcHeaders()parseUcShareUrl()
  • 新增 uc.driver.ts:实现 validate()saveFromShare(),流程为 stoken、detail、save、poll save task、create share、poll share task、set password。
  • 新增 driver-factory.ts:支持 quarkbaidualiyunuc
  • 运行同一组测试,预期通过。

任务 3:接入主保存和凭据验证路径

  • 修改 cloud.service.ts:用 factory 创建 driveruc 调用 saveFromShare(),返回字段写入现有 save_records
  • 修改 credential.service.tstestCloudConnectionWithCookie(uc)getAndValidateCredential(uc) 使用 UcDriver.validate()
  • 新增或扩展测试覆盖 factory 接入。
  • 运行:npm test -- src/cloud/driver-factory.test.ts src/cloud/drivers/uc.driver.test.ts

任务 4:构建与单容器部署验证

  • 运行:npm run build
  • 运行:docker compose build app
  • 运行:docker compose up -d app
  • 验证:docker compose ps 只有 app/redis/pansou,没有 transfer 容器。
  • 验证:curl -fsS http://127.0.0.1:9527/health
  • 验证:curl -fsS http://127.0.0.1:9527/api/admin/cloud-types 能看到 uc

验收标准

  • CloudSearch_App 单容器内的主应用构建包含 UcDriver
  • /api/savetarget_cloud=uc 不再返回“暂不支持”。
  • 无长期 cloudsearch-transfercloud-auto-save-test 容器。
  • 没有收益上报、签到、独立 transfer 服务集成。