从存储库列表中删除旧工件

Deleting old artifacts from a list of repositories

我正在尝试从 jfrog artifactory 的存储库列表中删除工件(超过 6 个月)。 我正在创建一个如下所示的规范文件,并使用我正在使用 jfrog cli 删除的规范。 我的查询是有什么方法可以循环执行 aql 而不是手动更新 repo 名称:foobar

 {
  "files": [
    {
      "aql": {
        "items.find": {
          "repo": "foobar",
          "$or": [
            {
              "$and": [
                {
                  "modified": { "$lt": "2021-06-06T21:26:52.000Z"}
                }
              ]
            }
          ]
        }
      }
    }
  ]
}```
jfrog rt del --spec /tmp/foo.spec --dry-run

I want to run the aql in loops only change will be the repo name . Is there a way to do it ?

看起来我们没有直接的方法来实现这一点,但您可以使用 -spec-vars 以便通过 CLI 命令传递动态变量。我的意思是说我们可以编写一个脚本来循环传递选定存储库的名称,并使用 --spec-vars 如下:

jfrog rt del --spec test.spec --spec-vars "RepoKey=libs-release-local" --dry-run

规格文件如下所示:

{
  "files": [
    {
      "aql": {
        "items.find": {
          "repo": "${RepoKey}",
           ...............
        }
      }
    }
  ]
}

此外,还有一个 Artifactory Cleanup 用户插件,我们可以在其中指定所需的存储库名称以根据您的需要进行清理,因此,您也可以参考这个。

您可能还想考虑使用 JFrog-CLI 插件: https://github.com/jfrog/jfrog-cli-plugins/tree/main/rt-cleanup 这比 file-spec 方法更容易一些。 您需要做的就是安装插件:

jf plugin install rt-cleanup

然后删除旧工件:

jf rt-cleanup clean example-repo-local --time-unit=month --no-dl=6