数据安全模型
Cauli Photo 为什么敢承诺「绝不覆盖已有文件」:只读浏览、计划先行、SHA-256 校验与原子发布。
更新于 2026-10-03
选片阶段:完全只读
拖进选片会话的照片处于只读浏览状态:
- 不移动、不重命名、不修改、不写入任何源文件;
- 判断结果(入选/淘汰/星级/色标)保存在应用自己的数据里,与照片文件分离;
- 随时关闭应用、拔掉 SD 卡,源文件夹与你拖入前一模一样。
导入的三道工序
点下「开始导入」后,Cauli 不会直接复制文件,而是走三步:
- 生成只读计划。 扫描源文件与目标位置,按拍摄日期规划目标路径,提前标出重名与冲突。计划只是一份清单,此时没有任何写入。
- 写入临时文件并校验。 每个文件先写到目标目录旁边的临时文件,随后做 SHA-256 校验,确认写入结果与源文件逐字节一致。校验失败或中断,临时文件会被清理。
- 原子发布。 校验通过后才把临时文件改名到最终路径。改名在同一个文件系统内是原子操作——目标位置要么没有这个文件,要么出现一个完整的文件,永远不会出现「写了一半」的中间状态。

- 导入回执 — 复制了什么、原文件是否保留,明确写出
- 打开目标文件夹 — 一键查看导入结果
绝不覆盖
如果目标位置已存在同名文件,导入计划会把它标为冲突并暂停执行,等你显式决定怎么处理。Cauli 的常规流程中没有「直接覆盖」这个选项。
删除也要过两道门
淘汰的文件进入待删除队列,但队列不等于删除:
- 进入待删除视图后需要复核清单,可按色标等条件缩小范围;
- 执行删除走的是系统废纸篓(回收站),而不是直接抹掉——后悔了还能找回来。
数据存在哪里
- 照片本体:永远只在你指定的位置(本机硬盘、移动硬盘、SD 卡);
- 应用数据与缩略图缓存:本机用户目录,可以随时删除重建;
- 云端:什么都没有。没有账号体系,没有上传,更新检查只拉取版本信息与公告。
测试版的到期机制
公开测试版内置了到期时间,到期后应用会提示并引导回下载页获取新版本。这是测试阶段的节奏控制,正式版不会这样打扰你——你的照片本身当然不受任何影响,原文件永远都在。