【问题标题】:Is there a way to fetch list of files belonging to a particular file format from a folder in a zip in Artifactory using REST/AQL?有没有办法使用 REST/AQL 从 Artifactory 的 zip 文件夹中获取属于特定文件格式的文件列表?
【发布时间】:2021-05-05 07:11:36
【问题描述】:

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

【问题讨论】:

    标签: artifactory artifact artifactory-query-lang


    【解决方案1】:

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

    作为一个例子,让我们以 my-archive.zip 档案库部署在 myrepo 文件夹内的 folder1 文件夹为例

    以下 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
    

    【讨论】:

    • 谢谢 Dror,但我在不同的文件夹中有多个同名的工件,如何指定确切的存档?例如,我有 xxxxxx/archive_01.zip 和 yyyyy/archive_01.zip。我只需要从 xxxxx/archive_01.zip 中查询 xml,而不需要在 yyyyy 中查询。请帮助@Dror Bereznitsky
    • @AnuragAravala 您还可以按项目路径过滤。我更新了答案中的 AQL 示例
    • 谢谢@Dror Bereznitsky,但我不知道为什么它给出的结果是空的。首先,我将使用 items.find() 获取所有 archive.zip 的列表,并使用“修改”字段对它们进行排序。对于上述查询,我​​使用从 items.find() 获得的结果中的名称和路径。所以我认为上述查询的两个论点应该是正确的。第四个 archive.entry.name 也应该是正确的,因为您已经给出了正确的匹配标准。我在存档中为第三个参数提供了正确的路径,并且我也以不同的方式尝试过。
    • 正确给出所有四个值后,我无法找到为什么我得到的结果是一个空列表。我已经手动检查了 zip,并且在该特定位置有 8000 多个 xml。你能帮我看看哪里错了吗?
    • 存档条目元数据由 Artifactory 存档索引功能收集。在较新版本的 Artifactory 存档索引中默认禁用。请检查 ${ARTIFACTORY_HOME}/etc/mimetypes.xml 以查看是否为 zip 存档启用存档索引。欲了解更多信息,请参阅jfrog.com/confluence/display/JFROG/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多