跳到主要内容

处理异常文件

外部 VFP 必须被视为不可信二进制输入。常见失败包括版本不支持、目录 CRC 错误、区段偏移越界、VOX0 RLE 损坏、PAL0 不连续、Chunk 缺失,以及 sourceHash 不一致。

from vfp_reader import VfpError, VfpReader

def inspect_upload(path: str) -> dict:
try:
reader = VfpReader.open(path)
return {"ok": True, "summary": reader.inspect(),
"verification": reader.validate_source()}
except VfpError as exc:
return {"ok": False, "kind": "invalid-vfp", "message": str(exc)}
except OSError as exc:
return {"ok": False, "kind": "storage", "message": str(exc)}

失败时不要修改、重命名或覆盖源文件。把文件移入业务定义的隔离目录,保存文件 ID、来源、接收时间、SDK 版本、异常文本与可选的外部 SHA-256,方便后续复现。

不要为了“兼容”而跳过 CRC 或 sourceHash。CRC 保护传输与目录载荷,sourceHash 保护 PAL0/VOX0 的语义一致性;两者解决的问题不同。