3.7 KiB
3.7 KiB
CloudSearch 单容器网盘能力 P0 实现计划
面向 AI 代理的工作者: 必需子技能:使用 superpowers:subagent-driven-development(推荐)或 superpowers:executing-plans 逐任务实现此计划。步骤使用复选框(
- [ ])语法来跟踪进度。
目标: 将 UC 网盘转存能力和主应用云盘 driver 分发能力集成进 source_clean,由现有 CloudSearch_App 单容器构建和运行,不新增长期 transfer 容器。
架构: 在 Node/TypeScript 主应用内新增 UcDriver 和轻量 driver factory。saveFromShare()、凭据验证、连接测试仍走现有 cloud_configs、save_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.ts和cloud.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 为UcDriver,unknown为null。 - 编写
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-factory和uc.driver不存在。
任务 2:实现 UC driver 和 factory
- 新增
uc-api.ts:UC_API_BASE=https://pc-api.uc.cn、UC_SHARE_API、getUcHeaders()、parseUcShareUrl()。 - 新增
uc.driver.ts:实现validate()、saveFromShare(),流程为 stoken、detail、save、poll save task、create share、poll share task、set password。 - 新增
driver-factory.ts:支持quark、baidu、aliyun、uc。 - 运行同一组测试,预期通过。
任务 3:接入主保存和凭据验证路径
- 修改
cloud.service.ts:用 factory 创建 driver;uc调用saveFromShare(),返回字段写入现有save_records。 - 修改
credential.service.ts:testCloudConnectionWithCookie(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/save对target_cloud=uc不再返回“暂不支持”。- 无长期
cloudsearch-transfer或cloud-auto-save-test容器。 - 没有收益上报、签到、独立 transfer 服务集成。