Expand description
目录容器(模式 A):把整个文件夹打包进单个 .omy。
对应设计文档 05 号 §2
与决策 D-05。载荷是若干文件字节的顺序拼接,TLV_FOLDER_INDEX
记录每个条目在明文载荷流中的偏移与长度。
§为什么偏移是明文流偏移
与分块 AEAD 的寻址正交:给定 offset..offset+size,直接套用
payload 的区间读取即可,容器内单文件预览
与单文件模式复用同一套逻辑,只多一层基址。
§路径安全
索引来自不可信文件。若原样拼接落盘,.. 或绝对路径会造成
目录穿越写入。ContainerIndex::parse 在解析阶段即拒绝这类条目,
而不是留给调用方自觉检查——见 validate_component。
Structs§
- Container
Builder - 索引构建器:顺序添加条目,自动累加载荷偏移。
- Container
Entry - 一个容器条目。
- Container
Index - 容器目录索引。
- Entry
Meta - 跨平台元数据。不支持的项在还原时明确报告而非静默丢弃(决策 N3)。
Enums§
- Entry
Kind - 条目类型。
Constants§
- INDEX_
VERSION - 索引格式版本。与文件格式版本独立演进。
- MAX_
COMPONENT_ LEN - 单个路径组件的字节上限。多数文件系统的限制为 255。
- MAX_
INDEX_ SIZE - 索引自身的字节上限,防止畸形输入触发大量分配。
- RECOMMENDED_
MAX_ ENTRIES - 建议的条目数上限。超过时上层应提示改用树形模式(文档 §2.4)。
Functions§
- validate_
component - 校验单个路径组件是否可安全落盘。