Artifactory 不删除唯一快照

Artifactory not deleting Unique Snapshots

我们有一个使用 220Gb 的 Artifactory 服务器 - libs-snapshots-local 存储库使用了 98% 的存储空间。

当我们查看存储库的配置时,我们注意到 Maven 快照行为设置为:unique 并且 Max Unique Snapshots 值为 0

我们将 Max Unique Snapshots 值更改为 5。

当我们仍在处理快照时,这似乎有效,但是如果我们不再部署到快照(已经发布),那么它不会删除任何这些文件。

举个例子: 我们在快照存储库中有以下内容:

com/company/some/app/1.23-SNAPSHOT/.. (50+ artifacts)
com/company/some/app/1.24-SNAPSHOT/.. (5 artifacts)

Artifactory 将当前 SNAPSHOT 目录 ( 1.24-SNAPSHOT ) 保留为最多 5 个工件,但是 1.23-SNAPSHOT 目录中的工件数量永远不会减少。

似乎 Artifactory 使用工件的部署来触发清理检查 - 因此,如果您不再部署到该工件,则不会进行清理?

我们如何让 Artifactory 开始删除 1.23-SNAPSHOT 文件夹中多余的工件?

你说得对,部署新快照是删除旧快照的触发因素。由于你的 1.23 神器爆炸是之前(错误)配置的遗留问题,从现在开始你就很好了。

删除旧快照的最简单方法就是将另一个(甚至是虚拟的)快照部署到 1.23 中。它将触发清理。

另一个想法可能是创建另一个快照存储库并将 1.23 的最后 5 个快照移至其中。然后您可以安全地删除 1.23 文件夹并将其从临时仓库中移回。

所有这些都是清理一个或几个版本的有效选择,但它们无法扩展。如果你有很多版本要清理,我建议写 a simple execution user plugin.

你只是 get the children of a version directory and delete 除了你想离开的少数人之外的一切。