Skip to content

MonkeyAI:支持资源包分卷导入与断点续传 - #1420

Merged
yokowu merged 1 commit into
mainfrom
feat-resource-import-volumes
Oct 19, 2026
Merged

yokowu merged 1 commit into
mainfrom
feat-resource-import-volumes

Conversation

@yokowu

@yokowu yokowu commented Oct 19, 2026

Copy link
Copy Markdown
Collaborator

资源包原先需要在预览和确认时分别上传完整 ZIP,无法直接导入按字节拆分的分卷。逐卷导入又会把其他卷的资源视为缺失项并尝试停用。本次增加持久化上传会话,全部分卷收齐并检查后统一预览、一次事务导入,确认时复用已上传内容。

  • 管理端提供选择文件、上传解析、确认导入三个步骤,支持分卷排序、缺卷提示、进度、暂停、刷新后续传和未完成任务管理。
  • 服务端按 64 MiB 传输块保存到对象存储,按管理员隔离会话,支持摘要校验和幂等重试;上传封存后不可修改,任务保留 24 小时并定期清理。生产 S3 使用临时文件流式上传,分块文件通过统一 ReaderAt 读取。
  • 保留完整清单确认、资源停用保护、发布者锁、事务和旧 multipart 接口;新增 upload_id 请求方式,并更新 OpenAPI 与 Nginx 配置。
  • 外部 Expert 引用阻止资源停用时,错误提示补充资源类型、Expert 名称及处理建议;统一缺省和空认证选项,避免恢复任务时误判预览摘要变化。

支持普通 ZIP、按字节拆分的 .zip.001/.002… 和解压目录,整包上限保持 2 GiB;暂不支持原生 .z01 + .zip 或 7z。部署需应用新增迁移 000027_resource_import_uploads,本 PR 未部署,也未修改已有 Expert 引用。

验证已通过:

  • 后端 go test -p 2 ./...(启用 PostgreSQL/S3 集成)、go vet ./...、make sqlc-check。
  • 管理端 pnpm build、pnpm test(225 项)、修改源文件 ESLint。
  • OpenAPI YAML 解析、Nginx 配置语法和 git diff --check。
  • 真实浏览器验证乱序分卷、缺卷补齐、刷新后继续确认、导入记录及外部 Expert 引用冲突;65 MiB ZIP 恢复后只补传末块并成功导入;检查桌面与 390 像素窄屏布局。

全量回归同时将计费集成测试中的旧 /statistics/tasks 地址更新为现有 /statistics/tasks/overview,未改变统计业务行为。

@yokowu
yokowu merged commit cb2ad46 into main Oct 19, 2026
2 checks passed
@yokowu
yokowu deleted the feat-resource-import-volumes branch October 19, 2026 11:52
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.

1 participant