模型交付

迁移端侧 AI 的本地存储位置

存储迁移是主动把数据从一个仍可访问的存储根移动到另一个位置,不等同于卷突然消失或单个文件重命名。应按所有权分类复制与验证,确保中断后能识别哪个副本可靠。

审核状态: 内容已校验;中文稿供用户审核 · 2026-10-05 · Fact IDs: COVE-DOWNLOAD-01, PRIVACY-01

直接回答

存储迁移是两个位置都可访问时的计划性搬迁,不同于存储卷已卸载或单个下载文件重命名。首先盘点各类数据并定义归属,只迁移产品确实需要移动的内容。先复制到候选目标位置,在此验证身份和完整性证据,确认目标可用后再更新权威路径;转换提交前保留可恢复的来源副本。若进程中断,下次启动必须判断哪份副本才是正确来源,不能混合字节或误删用户数据。 需将模型工件与临时数据及用户数据分开处理。完整模型具有固定身份,能按照该版本可获得的证据校验。部分下载文件绑定传输状态与响应范围;安全迁移它需要保留模型身份和接受偏移,否则应将其作为模型临时文件按政策丢弃。缓存可以重建,但删除前要先分类。索引或派生输出可能引用特定模型版本,须有明确重建或兼容规则。对话数据库、用户导入文档和导出内容属于用户,迁移这些数据需要独立保障。不能把同一沙箱目录下所有文件当成性质相同的文件夹。 迁移目标和方式要符合数据归属。应用专属内部目录由应用管理且通常随包生命周期变化;应用专属外部位置的可用性不同,也可能随存储卷移除或卸载而失效。用户选择的目录通过 Storage Access Framework 授权,是另一种 URI 权限边界。必须让用户知道移动哪些数据、是否会删除旧副本,以及以后如何访问。不能未经同意把个人文档搬到新的 Provider,也不能仅为了简化迁移申请宽泛存储权限。 按临时双份占用进行预算。采用复制策略时,在校验和元数据切换完成前,源文件与目标文件会同时存在。按实际文件长度、目标卷、部分下载和活动模型计算;不要假设跨文件系统 rename 一定原子或不用额外空间。如果空间不足,就在任何破坏性更改前停止并说明选择。除非产品实现并测试过原地迁移及恢复保证,否则在新位置校验通过前旧根仍应保持可用。 建立有日志的状态机。持久化迁移 ID、源根、目标根、工件版本、数据类别、期望与实际长度(如果适用)、可用摘要证据、阶段和最后完成项目。重启后查看源与目标,而不只相信一个布尔状态。如果源仍完整、目标部分写入,可继续复制或只删除候选数据;如果目标已验证而指针更新未提交,应幂等地完成切换。如果两处都无法证明可用,应提供修复并保留用户数据。目标文件真正存在之前,不要批量更新所有数据库路径。 按数据类别分别核验。对模型工件,核对目标文件身份、适用完整性证据和运行时加载。对部分下载,要么迁移传输元数据并在续传前重新确认远端表示,要么向用户说明后清除仅属于模型的临时数据。对索引,要确保引用的源和模型版本仍匹配,否则重建。对用户记录,比较数量与可读样本,保留时间戳和标识,并测试回退。文件复制成功不等于所有仓库引用都已更新。

旧存储根仍可用时主动迁移

应用准备改变模型目录,旧位置仍挂载且含活动工件、部分候选、缓存、索引和用户历史。每类数据有不同恢复与删除责任。QA 还需验证中断后能否恢复而不更改活动文件或删除对话,并在路径切换前完成检查。The team must test restart recovery and rollback before updating the authoritative pointer. The migration owner reviews source and destination inventory, checks a representative record, and approves the path update only after every required copy is confirmed accessible.

决策

按数据所有权将内容复制到候选目标,逐项验证后再更新权威路径,并在完成前保留源数据。

预期结果

迁移中断后可以识别有效副本,不会混淆模型版本或丢失用户记录。

需要收集的证据

只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:

  • 事实卡 COVE-DOWNLOAD-01、PRIVACY-01;Cove 下载器临时文件与用户内容隐私边界。
  • Android 应用专属存储、Storage Access Framework 和 Room schema migration 文档。

收到完整字节流还不够;最终落盘、完整性、运行时加载和恢复路径也必须验证。

实施流程

  1. 记录根目录与所有权. 列出源目标路径、存储卷、权限及每类数据,包括活动模型、临时传输、缓存、索引、数据库和用户内容,标明文件归属。
  2. 为每类数据定义策略. 逐类说明复制、重建、保留或清除条件及其完成证据。文件位置移动和数据库 schema 转换需分别设计与测试。
  3. 检查目标容量. 根据源文件实际长度、候选副本、活动模型和验证临时空间计算目标需要。目标卷空间不足或未知时不得清掉原始副本。
  4. 先复制到候选目标. 保存模型版本与业务标识并记录迁移进度。每一类目标文件存在、长度核对和引用验证完成前,不更新权威路径。
  5. 校验后提交切换. 重新读取目标文件,核对身份及适用完整性证据,测试模型加载、修正索引引用,最后通过可恢复的指针变更启用新根目录。
  6. 注入故障并验证回退. 在复制、校验和路径更新后分别中止任务再启动,检查幂等恢复、旧模型可用性、用户数据保留及候选清理范围。

让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。

验收标准

  • 源与目标位置明确,模型、部分传输、缓存、索引、数据库和用户数据分别跟踪。
  • 仅在需要的数据类已到达目标并通过对应检查后切换权威路径。
  • 迁移中断不会留下身份不明的活动模型,也不会静默丢失会话或导出。
  • 目标空间不足会在破坏源数据前停止,并提供明确且可恢复的选择。

决策对照表

维度选择或证据解读方式
主动存储迁移源和目标均可访问,产品计划更改路径。复制、校验、切换并验证中断恢复。
可移除卷丢失原挂载位置意外消失。检测不可用并保留状态,等待卷返回或选备用位置。
单文件重命名同一根目录内切换一个完整候选名称。只验证该文件身份与文件系统语义,不迁移其他数据类别。

需要避免的失败模式

  • 不将模型、部分下载、缓存、索引、数据库和用户文件作为同一类目录整体删除或复制。
  • 目标内容验证完成前不切换根路径,也不提前删除源数据。

还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。

最小复现记录

层级记录内容
设备厂商、型号、芯片、内存档位、操作系统版本
软件应用版本和 Git 提交号
模型系列、变体、版本、格式、文件长度、摘要、量化方式
运行时名称、版本、请求后端及实际后端证据
工作负载样例版本、输入摘要、提示词摘要、输出策略
结果完成、失败、取消、回退及保护隐私的诊断信息

发布检查表

  • ☐ 主要搜索问题已回答,且没有未经支持的数字。
  • ☐ 所有模型文件和运行时版本均已固定。
  • ☐ 代表性任务和失败处理策略均有说明。
  • ☐ 生命周期、取消、清理和回退均已测试。
  • ☐ 用户内容与网络边界均有说明。
  • ☐ 结论只适用于被记录的配置。
  • ☐ 新增测试结果时链接到原始方法或证据。

来源与相关证据

中文部署与排错专题见。奇连 AI 端侧专题。

常见问题

可以在复制前更新全部存储路径吗?

不可以。路径不能指向尚不存在的目标文件。应先分阶段复制并验证各数据类,之后才在可恢复的提交点更新权威位置,并保留迁移日志。

模型搬迁与 Room 数据库迁移是同一种操作吗?

不是。移动改变文件位置,Room 迁移转换数据库结构或记录。即使同一版本同时发生,也需要独立日志、测试、数据核对和回退边界。

复制返回成功后可以马上删旧数据吗?

不应马上删除。仍需核对目标身份、完整性和索引引用;保留旧来源直到新根实际可用、引用对齐且恢复方案完成验证,确保出现问题时可回退。