1

我正在努力寻找使用 AQL 和 CLI 从 Artifactory 清理所有 RPM 存储库的解决方案。例如,我想删除过去 12 个月内未下载的所有内容(如果创建日期早于 1 年并且从未下载过)。我认为最难的部分是我还需要在每个存储库中保留最后 x 个 RPM 文件(例如最后下载的最后 3 个 rpm 文件)。知道如何执行此任务或是否有可能,尤其是保留最后下载的部分。任何建议表示赞赏。

谢谢你,丹妮

4

1 回答 1

2

使用 jfrog CLI 和 AQL 清理旧工件

JFrog CLI 是一个紧凑而智能的客户端,它提供了一个简单的界面来自动访问 Artifactory。作为 REST API 的包装器。

安装 JFrog CLI

在 MAC 上

brew install jfrog-cli-go

卷曲

curl -fL https://getcli.jfrog.io | sh

JFrog CLI 语法

jfrog target command-name global-options command-options arguments

目标 - 您希望在其上执行命令的产品:

rt: JFrog Artifactory
bt: JFrog Bintray
mc: JFrog Mission Control
xr: JFrog Xray

配置 JFrog cli

jfrog rt c Artifactory --url=https://artifactory.eqs.intra/artifactory --apikey=<add api key> #can generate api key from user profile

生成 API 密钥

登录到工件->单击用户名并编辑配置文件->在身份验证设置下

JFrog CLI 配置官方文档

搜索文物

显示来自-注册表--docker 路径--* 下载状态的工件= null#未下载-之前创建1 month

{
  "files": [
    {
      "aql": {
        "items.find": {
          "repo": {"$eq":"docker"},
          "path": {"$match":"*"},
          "name": {"$match":"*"},
          "stat.downloads":{"$eq":null},
          "$or": [
            {
              "$and": [
                {
                  "created": { "$before":"1mo" }
                }
              ]
            }
          ]
        }
      }
    }
  ]
}

AQL 官方文档

运行搜索并验证您要删除的包

jfrog rt s --spec artifactory.spec 

根据规范文件删除工件

jfrog rt del --spec artifactory.spec

洞察页面

于 2020-06-03T12:46:19.163 回答