首页 > 解决方案 > 通过 Artifactory REST API 进行高效的服务器端批量删除

问题描述

我正在寻找一种有效的方法来删除大量工件,这些工件从 Artifactory 分布在各个位置(通过搜索查询检索)。

我尝试使用 JFrog CLI 'rt del' 命令(连同 AQL 文件)来搜索然后删除结果,这很有效。但是,我发现我们的实例的移除速度非常慢 - 大约 1 个工件移除/秒。我将需要移除数十万件文物,这将花费太长时间。所以我正在寻找一种完全在服务器端执行的批量删除机制。

我注意到 Artifactory UI 支持“搜索存储”功能,可以在其中执行搜索,然后保存并可以对结果采取行动(包括删除操作)。这可以通过 REST API 获得吗?这似乎很适合这个用例。

或者,有没有办法在 UI 中按创建日期执行搜索?如果是这样,我大概可以使用搜索存储功能并在搜索存储上执行删除。

我能想到的最后一个选择是编写一个自定义插件来完成这项工作,但我希望有一种更简单的方法,因为它看起来像一个半常见的情况。

提前致谢!

标签: artifactory

解决方案


从搜索存储中删除会从存储结果中删除工件,但不会从工件中删除(根据我的理解)。

有可用的 groovy 插件可以根据几个条件清除您的工件(下面的链接)

Groovy 清理

我发现 Artifactory AQL 在搜索和删除工件方面非常有帮助。

我还编写了一个自定义清理脚本,该脚本又使用 aql 删除用于 repo 正则表达式匹配的工件,并检查工件提升状态


推荐阅读