ARTIFACTORY:如何开始使用AQL?

依琳娜Floim
2023-01-22 11:09

Artifactory Query Language (AQL)是一种有用的工具,用于查询存储在Artifactory中的信息,并通过构造更复杂的查询来回答更具体的用例,从而获得更具体的信息位。
在这篇简短的文章中,我们将使用几个示例,以便更好地理解如何构造基本的AQL查询,以及以后如何将查询与Artifactory一起使用。

查询可以构造为在某些情况下工作域和字段在Artifactory。域将包括物品、构建、属性等。每个域都包含可以查询的字段,例如,对于“item”域,我们可以查询诸如“repo”、“name”、“created”、“modified”等字段。

例如,该查询将显示指定存储库中排名前10位的条目,并按修改时间降序对它们进行排序:

物品。找到({“回购”:“< repo_name > "})。Sort ({" $desc ": [" modified "]}).limit(10)

在2021年7月1日之后创建的构建,具有一个键名为“license”的属性,其值是“LGPL”的变体:

构建。找到({"创建":{$ gt:“2021-07-01”},{”@artifactory。licenses ": {" match ": " *LGPL* "}})

workshop-docker-local存储库下最近5天内创建的所有文件,且磁盘大小大于500;

物品。找到({“回购”:“workshop-docker-local”,“创建”:{“美元”:“5 d”},“大小”:{" $ gt ": " 500 "},“类型”:“文件”})

要在API调用中使用AQL查询,我们可以使用以下命令结构:curl -u: -X POST -k -H 'Content-Type:text/plain' -i https:///artifactory/api/search/aql——data '项。找到({“回购”:“< repo_name > "})。Sort ({"$desc": ["modified"]}).limit(5)'
上面cURL查询的输出将类似于这样:{
"results": [{
"repo": "workshop-docker-local";
"path": ".",
"name": "repository.catalog"
"type": "file",
size: 1034;
"created": " 20121-06-16 t15:47:10. 806z ",
created_by: admin,
"modified": " 2019-08-25 t08:21:12 .423 z ",
modified_by: admin,
"updated": "2021-08-25T08:21:12.453Z"
},{
"repo": "workshop-docker-local";
"path": "asp/multi-arch-test/1.1.1-rc.1"
"name": "list.manifest.json"
"type": "file",
size: 741;
"created": "2021-08-25T08:21:12.390Z",
created_by: admin,
"modified": "2021-08-25T08:21:12.354Z",
modified_by: admin,
"updated": "2021-08-25T08:21:12.391Z"
},{
"repo": "workshop-docker-local";
"path": "asp/multi-arch-test/1.1.1-rc.1-linux-arm64",
"name": "manifest.json",
"type": "file",
size: 735;
"created": "2021-08-25T08:21:12.321Z",
created_by: admin,
"modified": "2021-08-25T08:21:12.296Z",
modified_by: admin,
"updated": "2021-08-25T08:21:12.323Z"
},{
"repo": "workshop-docker-local";
"path": "asp/multi-arch-test/1.1.1-rc.1-linux-amd64",
"name": "manifest.json",
"type": "file",
size: 735;
"created": "2021-08-25T08:21:12.119Z",
created_by: admin,
"modified": "2021-08-25T08:21:11.437Z",
modified_by: admin,
"updated": "2021-08-25T08:21:12.120Z"
},{
"repo": "workshop-docker-local";
"path": "asp/multi-arch-test/sha256:c20b21f62a18b44dd62a18bc3144bb0bd369a4eb6c5a5de1e18188f291649279",
"name": "manifest.json",
"type": "file",
size: 735;
"created": "2021-08-25T08:21:10.345Z",
created_by: admin,
"modified": "2021-08-25T08:21:10.316Z",
modified_by: admin,
"updated": "2021-08-25T08:21:10.347Z"
}),
"range": {
"start_pos": 0,
"end_pos": 5,
“total”:5,
limit: 5
}
}