有没有办法使用 REST/AQL 从 Artifactory 中的 zip 文件夹中获取属于特定文件格式的文件列表?

问题描述

我们有一个用例,可以从 Python 脚本下载或至少列出 Artifactory 中 zip 文件夹中的所有 .xml 文件。是否可以使用 REST 或使用 AQL?我正在寻找一个搜索查询以从 zip 文件夹中获取所有 xml,以便我可以使用 REST API 中的“存档条目下载”内容分别为每个文件发出下载请求。请帮助我提供有关可用于完成任务的端点或查询的相关信息(列出 zip 文件夹中的所有 xml)。还请告诉我任何其他有效的方法来完成任务。

解决方法

您可以使用 AQL 查询从存档内的给定路径获取文件列表。

例如,让我们以部署在 my-archive.zip 文件夹内的存储库名称 myrepo 中的 folder1 档案为例

enter image description here

以下 AQL 查询可用于在路径 level-1/level-2/level-3 下查找此存档中的所有 xml 文件:

archive.entries.find( {
    "archive.item.path":{"$eq":"folder1"},"archive.item.name":{"$eq":"my-archive.zip"},"archive.entry.path":{"$eq":"level-1/level-2/level-3"},"archive.entry.name":{"$match":"*.xml"}
})

您可以使用 AQL REST API 方法运行此查询并获得以下结果:

{
"results" : [ {
  "entry.name" : "dummy.xml","entry.path" : "level-1/level-2/level-3"
} ],"range" : {
  "start_pos" : 0,"end_pos" : 1,"total" : 1
}
}

以下是使用 curl 调用此 REST API 的示例(查询本身存储在名为 aql.json 的文件中):

curl -XPOST -uadmin:password -H"content-type: text/plain" -d@aql.json http://localhost:8081/artifactory/api/search/aql

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...