本页没有提供「上次更新时间」字段,也没有规定用哪一个界面核对结果。能核对的是:这一次更新应当写入哪里、来源是什么、解析失败时落到哪份备用、以及过滤和覆写之后集合里还剩什么。把这些对完,才能区分最近结果是新文件、旧备用,还是被筛过的子集。
适用条件
适用于等待过 interval 或已经按 http/file 更新过、需要确认某具名 provider 内容是否已替换的场合。inline 以 payload 为内容,核对的是 payload 是否被改,而不是 url 下载结果。不要用健康检查是否出延迟数据,代替集合内容核对。
核对步骤与判断依据
- 锁定条目。名称必须且不能重复,并建议不要和策略组名称重复。先确认核对的是哪一个 provider,避免看错集合。
- 核对落盘文件。
path可选、不可重复;不填则使用url的 MD5 作为文件名。路径必须在 HomeDir(启动参数-d)或SAFE_PATHS内。判断:该路径下的文件相对更新前是否变化。文件没变,不能称更新结果已替换。 - 核对本轮下载条件(
http)。对照url、header、proxy(是否经指定代理下载或更新)和size-limit(字节)。判断:拿来对照的远程内容,必须是同一url、同一请求头和大小限制下应得到的内容,否则比较对象不一致。 - 核对解析是否成功。
http或file解析失败时,可以使用payload作为备用代理。判断:若文件无法作为代理集合解析,而配置写了payload,当前节点列表等于备用,不是远程新列表。若来源经过 age 加密,还须核对该集合的age-secret-key是否符合资料所述的 armor 格式与密钥类型;核心不会主动把公钥发给服务器。 - 核对应显示的有效节点。
filter、exclude-filter(关键词或正则,可用反引号分隔)和exclude-type(按节点type、用|分割、不支持正则)会筛节点。override的前缀、后缀、proxy-name以及更晚执行的override-expr会改写名称和字段。判断:更新结果是过滤和覆写之后的集合,不要拿未经筛选的远程全文当标准。 - 把健康检查排除出「更新结果」。
health-check测延迟;lazy默认 true,不使用该集合节点时不测。延迟变化不表示 provider 内容已更新。
失败时下一步
path 无法访问时先处理 HomeDir 与 SAFE_PATHS,而不是反复改 interval。文件已变但列表仍旧,按解析失败与 payload、再按过滤条件往下查。文件未变则核对 type 是否为 http、url 是否指向预期来源。本页未给出更新时间戳或专用核对接口,不要编造日志文件名;以 path 内容、是否改用 payload、过滤后的名称集合三者对照为准。