0

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

4

1 回答 1

2

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

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

在此处输入图像描述

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

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

在此处输入图像描述

于 2021-05-06T09:57:50.683 回答