2.3 KiB
2.3 KiB
title, type, permalink, stable_id, scope, project_id, memory_type, status, revision, restored_from_commit, created_at, updated_at, tags
| title | type | permalink | stable_id | scope | project_id | memory_type | status | revision | restored_from_commit | created_at | updated_at | tags | ||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 出库 ZIP 导入契约与备份恢复机制 | fact | main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/出库-zip-导入契约与备份恢复机制 | 76e12a12-446a-4d96-bb49-2534930a5d56 | project | d44c219a-0b31-4de1-b160-323eb34a4c6a | fact | active | 1 | 6a6a895eaf |
2026-09-23T15:07:24.510262+00:00 | 2026-09-23T15:07:24.510364+00:00 |
|
出库 ZIP 高级导入(仅登记出库,不自动上链):
- ZIP 根目录只能一个 xlsx(列:追溯码、批次、出库时间(必填,UTC+8 严格解析)、备注);图片仅接受
images/<追溯码>/文件名(旧image/目录、单元格图片路径不兼容)。 - 边界(
outbound-import.util.ts):最多 10000 行/64 列;单 xlsx 100MB(内部解压 500MB);单图 100MB、JPG/JPEG/PNG/WebP、≤4000 万像素、单帧;图片张数无业务上限;ZIP 中央目录100002条目是技术安全阈值;总体积无固定上限(受磁盘/内存/1 小时接收窗口约束)。临时盘预检:有 Content-Length 按 3 倍与 1GB 取大,无则先 1GB 后按实际复检。 - 流程:上传(requestId 幂等,Multer 临时盘 →
.private/私有存储)→ 预览 Job(逐行校验、已出库/不存在/重复码拒绝)→ 会议 READY → 提交(事务内 READY→IMPORTING CAS,同 jobId)→ Worker 以TraceCode.outTime IS NULL条件更新逐行导入 → 结果 xlsx。预览 Job 每分钟心跳,失联 2 小时恢复;终态后立即删原始 ZIP。静态模板apps/api/src/assets/templates/outbound-import-template.zip。
备份:格式 2.0.0 ZIP(manifest/database.json/storage 全目录),覆盖全局流水、逐码任务、上链分片/凭证、出库模型、系统设置(raw 值,含明文 UserKey)。创建/下载/上传/恢复均流式(archiver/unzipper,Zip64);恢复前精确校验 app/版本/模型全集/媒体清单/路径/大小/CRC/磁盘/nextSeq > max(serialNo),完整落盘后才自动快照并清库/清媒体;CAS 防并发;不恢复正在执行的批量导入(PARSING/IMPORTING 安全终止)。后台可定时备份+保留策略;恢复必须“上传预校验 → 确认恢复”两步。备份包存非公开目录。