API/ArchiveLimits

数据对象

ArchiveLimits

配置创建、打开、校验和解包时使用的资源安全上限。

ArchiveLimits 定义 OCTX 创建、打开、校验和安全解包时允许使用的资源预算。所有主要入口都接受这个不可变配置对象。

基本用法

python
from octx import ArchiveLimits, validate_octx

limits = ArchiveLimits(
    max_entries=2_000,
    max_file_size=64 * 1024 * 1024,
    max_total_uncompressed=256 * 1024 * 1024,
    max_jsonl_line_size=2 * 1024 * 1024,
    max_jsonl_records=100_000,
    max_arrow_batches=10_000,
    max_arrow_rows=1_000_000,
    max_arrow_values=20_000_000,
    max_issues=100,
)

report = validate_octx("upload.octx", limits=limits)

同一个对象可以传给 create_octx()open_octx()validate_octx(),以及 unpack_octx()

可配置字段

字段默认值限制对象
max_entries10,000ZIP 或目录总条目数。
max_file_size512 MiB单文件及 Arrow metadata。
max_total_uncompressed4 GiB总解压大小及 Arrow 解码字节。
max_compression_ratio200单个 ZIP 条目压缩比。
max_jsonl_line_size16 MiB单条 JSONL 记录字节数。
max_jsonl_records1,000,000每个 JSONL 文件记录数。
max_json_depth100JSON 嵌套深度。
max_yaml_depth100YAML frontmatter 嵌套深度。
max_arrow_dimension65,536单条向量维度。
max_arrow_batches100,000Arrow DictionaryBatch 与 RecordBatch 总数。
max_arrow_rows10,000,000Arrow 总行数。
max_arrow_values100,000,000Arrow 向量总标量数。
max_issues1,000校验报告问题数。

使用原则

所有限制必须为正数。服务端处理上传内容时,应根据可用内存、磁盘和请求预算设置更小的值;不要直接把默认值理解为业务系统必须接受的规模。