ARTIFACTORY:如何识别和修复丢失客户端校验和的所有工件

保罗•潘
2023-01-22 11:06

Aritfactory中的工件具有客户端校验和和服务器校验和。服务器校验和由人工计算,而客户端校验和由部署者提供。

您可以参考这篇文章了解更多关于客户端校验和、服务器校验和和校验和策略

如果客户端的校验和丢失,而您的校验和策略是客户端校验和。你会看到警告。”客户端未发布校验和值…”。您还可以在UI中单独修复校验和。

但是,如果您有许多缺少客户机校验和的出口构件,则可能需要可伸缩的解决方案。

您应该首先尝试验证您是如何部署工件的,并检查为什么没有部署客户端校验和,以便新部署的工件没有问题。

更改校验和策略

如果您正在寻求立即解决方案,那么绕过混合客户端校验和问题的最简单方法是更改校验和策略。

在本地存储库设置中,您可以将校验和策略从“根据客户端校验和进行验证”更改为“信任服务器生成的校验和”。

请注意,某些存储库类型不支持在UI中直接更改校验和策略。您需要修改配置描述符并进行更改< localRepoChecksumPolicyType > client-checksums < / localRepoChecksumPolicyType >

< localRepoChecksumPolicyType > server-generated-checksums < / localRepoChecksumPolicyType >

识别repo中缺少客户端校验和的所有工件

识别缺少客户端校验和的所有工件的最快方法是运行以下查询:
从sha1_original为NULL且sha1_actual不为NULL且repo= ' some_repo '的节点中选择repo, node_path, node_name;

批量修复校验和

目前,我们还没有一个api来修复整个存储库的校验和。

如果您需要快速修复以更新repo中所有缺失的校验和,您可以运行以下查询:

更新节点设置sha1_original=' no_origin ',其中sha1_original为NULL且sha1_actual不为NULL, repo= ' some_repo ';

请注意,db模式可能会更改,因此请在运行上述查询之前进行备份