artifactory rest api 完全合格 class 搜索

artifactory rest api fully qualified class search

有什么方法可以使用完全限定的 class 名称从 Artifactory(similar to class-searth in Artifactory web UI). Based on this Documentation 进行搜索,我知道我可以像这样使用通配符 (*) 和 .class 文件扩展名:-

GET /api/search/archive?name=*Logger.class&repos=third-party-releases-local,repo1-cache

但我正在寻找一种方法来使用类似于此的完全限定 class 名称:-

GET /api/search/archive?name=org.apache.log4j.Logger&repos=third-party-releases-local,repo1-cache

但这不起作用。

您可以为此使用 Artifactory query language
例如,在 jcenter-cache 存储库中搜索名为 org/apache/log4j/Logger.class 的存档项的查询将是

items.find({
    "repo" : "jcenter-cache",
    "archive.entry.name":{"$eq":"Logger.class "}, 
    "archive.entry.path":{"$eq":"org/apache/log4j"}
})

响应将是

{
"results" : [ {
  "repo" : "jcenter-cache",
  "path" : "org/apache/log4j/com.springsource.org.apache.log4j/1.2.16",
  "name" : "com.springsource.org.apache.log4j-1.2.16.jar",
  "type" : "file",
  "size" : 481202,
  "created" : "2015-12-30T20:57:36.305Z",
  "created_by" : "admin",
  "modified" : "2010-08-04T13:18:06.000Z",
  "modified_by" : "admin",
  "updated" : "2015-12-30T20:57:36.354Z"
} ],
"range" : {
  "start_pos" : 0,
  "end_pos" : 1,
  "total" : 1
}
}

要运行这样一个使用curl的查询,当查询在文件名aql.txt

中时使用下面的语句
curl -H "content-type: text/plain" -uuser:password --data @aql.txt http://my-artifactory-host/api/search/aql