chore: 导入旧记忆备份供恢复
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: 出库 ZIP 导入契约与备份恢复机制
|
||||
type: fact
|
||||
permalink: main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/出库-zip-导入契约与备份恢复机制
|
||||
stable_id: 76e12a12-446a-4d96-bb49-2534930a5d56
|
||||
scope: project
|
||||
memory_type: fact
|
||||
project_id: d44c219a-0b31-4de1-b160-323eb34a4c6a
|
||||
usage_profile_id: 7aee455b-24cc-4008-bdaf-443721e6f939
|
||||
status: active
|
||||
revision: 1
|
||||
request_id: artveris-migrate-2026-09-03-fact-08
|
||||
created_at: '2026-09-03T03:49:33.428068+00:00'
|
||||
updated_at: '2026-09-03T03:49:33.428068+00:00'
|
||||
tags:
|
||||
- outbound
|
||||
- import
|
||||
- backup
|
||||
- limits
|
||||
---
|
||||
|
||||
出库 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 安全终止)。后台可定时备份+保留策略;恢复必须“上传预校验 → 确认恢复”两步。备份包存非公开目录。
|
||||
Reference in New Issue
Block a user