Artifactory 工件AQL下载工件

Artifactory 工件AQL下载工件,artifactory,artifactory-query-lang,jfrog-cli,Artifactory,Artifactory Query Lang,Jfrog Cli,有没有办法使用AQL下载工件 我有一个查询发送给: curl -u user:pass \ -X POST https://artifactoryURL/artifactory/api/search/aql \ -H 'content-type: text/plain' \ -T query.aql 和my query.aql: 现在我知道它返回我想要的东西,有没有办法将请求从api/search/aql更改为类似于api/download/aql的内容并获取这些项目 编辑: 我也尝试过使用j

有没有办法使用AQL下载工件

我有一个查询发送给:

curl -u user:pass \
-X POST https://artifactoryURL/artifactory/api/search/aql \
-H 'content-type: text/plain' \
-T query.aql
和my query.aql:

现在我知道它返回我想要的东西,有没有办法将请求从api/search/aql更改为类似于api/download/aql的内容并获取这些项目

编辑:

我也尝试过使用jfrog cli来实现这一点,但它们不完全支持AQL,排序和限制都不起作用

这是我尝试过的命令:

jfrog rt s --spec=query-aql.json
以及未能排序和限制结果的规范:

{
  "files": [
    {
      "aql": {
        "items.find": {
          "repo": "repo",
          "$and": [
            {
              "path": { "$match": "path/*"},
              "name": { "$match": "*.rpm"}
            }
          ]
        }
      },
      "sort": {
        "$asc": ["modified"]
      },
      "limit": 1
    }
  ]
}
编辑2:


添加了jfrog cli go问题:

使用aql脚本从artifactory下载文件的简单方法是使用jfrog cli,如下所述:

cli可以作为linux、mac或windows的可执行文件下载,并且应该适合您的需要


使用curl命令,您唯一能做的就是解析来自aql查询的结果,并对每个文件执行下载请求。

我只是在寻找一个非常类似的东西-使用下载规范文件从给定的repo和路径下载最新的工件。我不在乎是否使用AQL,我只想在download-spec.json文件中使用它。如果您转到上面,请看示例5

针对您的示例进行了修改:

{
  "files": [
  {
    "pattern": "path/*.rpm",
    "target": "my/download/path/",
    "sortBy": "created",
    "sortOrder": "desc",
    "limit": 1,
  }
  ]
}
jfrog cli支持-limit、-sort order和-sort by参数

以下是我的作品:

jfrog rt search --spec=/tmp/jfrogfilespec.json --sort-by created --sort-order=desc --limit 1 
json规范文件的内容包括:

{ "files": [ { "aql": { "items.find": { "repo":{"$eq":"my-release-repo"}, "name":{"$match":"my-artifact-prefix*"} } } } ] }
这将根据调试模式生成以下查询:

items.find( { "repo":{"$eq":"my-release-repo"}, "name":{"$match":"my-artifact-prefix*"} } ).include("name","repo","path","actual_md5","actual_sha1","size","type","created").sort({"$desc":["created"]}).limit(1)

令人沮丧的是,我似乎找不到一种方法将jfrog rt search与允许我影响搜索的include修饰符部分的filespec一起使用。

jfrog cli未能对结果进行排序和限制请参见编辑。这里最大的痛苦是,对于一些非常简单的事情,我必须有一个高级语言来解析返回的json,而AQL应该允许我将结果缩小到一个,并得到它。在发布之前,请在预览部分查看您的帖子,并检查是否一切正常。正如您将看到的,您的代码不正确。同时阅读关于如何写出好答案的文章。更好的答案会让你获得更多的选票,并且有更高的被接受的机会。
items.find( { "repo":{"$eq":"my-release-repo"}, "name":{"$match":"my-artifact-prefix*"} } ).include("name","repo","path","actual_md5","actual_sha1","size","type","created").sort({"$desc":["created"]}).limit(1)