【问题标题】:Efficient serverside batch deletion via Artifactory REST API通过 Artifactory REST API 进行高效的服务器端批量删除
【发布时间】:2019-04-17 03:37:27
【问题描述】:

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

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

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

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

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

提前致谢!

【问题讨论】:

    标签: artifactory


    【解决方案1】:

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

    有可用的 groovy 插件可以根据少数情况清除您的工件(下面的链接)

    Groovy Clean Up

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

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

    【讨论】:

    • 感谢指针@error404——清理插件已经解决了这个问题——可以指定删除速度,我现在看到每秒有 20 次删除。 :-)
    • 最欢迎@Moosetracks@ 很高兴答案很有帮助
    猜你喜欢
    • 2014-04-11
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多