【问题标题】:Delete artifacts after searching old artifacts in JFROG在 JFROG 中搜索旧工件后删除工件
【发布时间】:2017-04-19 10:34:20
【问题描述】:

我需要编写一个 shell 脚本,它可以通过使用 REST API 从 JFROG 获取过时的工件并删除它们。

我通过命令得到一个工件列表

curl -u user:password "http://artifactory:8081/artifactory/api/search/dates?dateFields=created&from=1467052559000&to=1497588559000&repos=current-repo"

并获得类似的输出

"results" : [ {
    "uri" : "http://artifactory:8081/artifactory/api/storage/current-repo/first artifact/artfoulder folder/file.tzs",
    "created" : "2017-04-10T11:33:50.190+03:00"
  }, {
    "uri" : "http://artifactory:8081/artifactory/api/storage/current-repo/second artifact/artfoulder folder/file2.tzs",
    "created" : "2017-04-10T11:33:50.140+03:00"
  } ]

和其他工件

在我成功拿到这些工件的列表后,我需要删除它们。

我的问题:

  1. 有简单的方法吗?或者我需要用shell解析输出字符串,将链接放入数组并通过REST API命令一一删除?
  2. 有一种方法可以仅获取已过时的一级工件文件夹并将其删除(在我的情况下,first artifactsecond artifact

提前非常感谢!

【问题讨论】:

    标签: bash curl artifactory


    【解决方案1】:

    为什么不使用已经专门为此准备好的脚本: https://github.com/JFrogDev/artifactory-scripts/blob/master/cleanup/aqlCleanup.groovy

    您需要做的就是更改 AQL 查询以搜索特定日期范围内的工件,仅此而已。这将自动清理。

    【讨论】:

    • 你能告诉我,如何在 Jenkins 中使用 groovy 脚本吗?就我而言,这应该是 Jenkins 的工作。
    • 在 Jenkins 中,您可以在 Generic 构建中运行命令行作业,然后运行 ​​groovy 脚本。您需要在 Jenkins 机器上安装 groovy。要运行 groovy 作业,只需运行以下命令:“groovy fileNeme.groovy” 请注意,我提到的 groovy 文件设置了特定的 AQL 条件。请确保根据您自己的需要更改此条件。
    • 感谢您的回答。当然,我会注意它。你能告诉我,我怎样才能让它只找到一级目录(信息在上面)?是否可以仅使用 curl 命令来完成?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多