AQL和JFrog CLI:天作之合

AQL和JFrog命令行

使用JFrog Artifactory运行构建的最大优势之一是详尽的构建信息,这些信息由许多来源创建,并在您的组织中使用。然而,随着组织的不断发展,有效地利用和管理这些数据变得至关重要。很容易就会耗尽宝贵的存储空间,而没有真正受益于那里的东西,也没有摆脱不再需要的东西。

这篇博文提供了一些关于如何有效利用现有Artifactory存储库数据、保持高性能、响应时间和管理存储使用的有见地的技巧人工查询语言(AQL)JFrog CLI

一组相互连接的域

在深入示例之前,让我们快速浏览一下AQL架构

AQL由一组相互连接的域构成,您可以在其中一次对一个域运行查询。这被称为主域的查询,它可以在(工件),构建条目,以及促销活动

您可以使用来自其他域的字段作为搜索条件的一部分,或者指定要在输出中显示的字段。

AQL架构

为了方便起见,除了指定完整的规范表示法外,AQL还支持短的符号例如,可以用以下两种方式编写查询,以查找具有名为“license”且值等于“GPL”的关联属性的项。

常规的符号

items.find @artifactory({”。许可证":{"$eq": "GPL"}})

短的符号

items.find @artifactory({”。“GPL”})

使用AQL和JFrog CLI进行高级清理

下面的示例演示如何创建有意义的查询,然后可以将其用于JFrog CLI更具体地说,这个查询的目标是存储问题,通过识别Artifactory存储库中没有使用的工件,可以使用有效的清理来解决。通过使用AQL查询指定这些工件,JFrog CLI可以用于从Artifactory删除这些工件。

让我们构建AQL查询

我们希望查询返回:

  • 来自任何名为Artifactory的构建的所有名为“Artifactory.jar”的存档条目,
  • 521号建筑,
  • 哪个是用户jenkins-builder创建的最大的100个文件,
  • 使用tar, zip或RPM扩展,
  • 从来没有被下载过,
  • 文件大小大于100mb,
  • 并且被标记为“qa=approved”属性。

下面就是:

物品。找到({“类型”:“文件”、“created_by”:“jenkins-builder”、“大小”:{$ gt:“100000000”},“stat.downloads”:{零}" $ eq”:,“@qa”:“批准”,“或“美元:[{"名称":{" $匹配":" * . tar "}}, {" name ":{" $匹配”:“* . zip”}},{"名称":{" $匹配”:“*。rpm "}} ] } ) . 排序({“美元desc”:(“大小”、“名称”)}).limit (100)

让我们使用JFrog CLI的AQL查询

一旦指定了查询的确切细节,就可以将其嵌入到JFrog CLI命令中,例如删除文件.该命令将从Artifactory中删除这些不必要的文件。

在我们继续删除工件之前,最好先执行一次演练并模拟执行。此功能可通过“排练命令选项,或者您甚至可以安全地使用CLI搜索命令。

cli_command

JFrog CLI也适用于JFrog任务控制中心JFrog BintrayJFrog x射线也计划集成。

管理工件的过去、现在和未来

这就是AQL的精髓。通过提供这样一种极其灵活的语言,允许您指定任意数量的搜索条件,以任何逻辑配置组合,使用任意一组过滤器并显示任意一组输出字段,我们不仅可以满足我们曾经收到的任何请求,还可以满足任何人还没有梦想过的任何未来请求。JFrog CLI提供了一个简单的界面,可以自动访问JFrog产品,这简直是天作之合,使您的脚本更加高效和可靠!hth华体会最新官方网站

了解更多JFrog CLI

了解更多AQL