如何在Artifactory中获取特定的属性值

时间:2017-05-21 23:55:24

标签: artifactory

是否有使用REST的方法,但避免aql在Artifactory中获取特定的自定义属性值。 工件名称,仓库和属性密钥是已知的。 获取工件路径根本不显示自定义属性。

有什么建议吗?

2 个答案:

答案 0 :(得分:7)

您正在寻找的是名为Artifactory REST API - Item Properties

的链接

这就是REST的样子:

$ curl -uadmin:password "http://localhost:8081/artifactory/api/storage/repository/path/to/file.jar?properties"

此REST API将返回工件属性。现在,为了获取特定属性,您需要在REST中传递它,如下所示:

$ curl -iuadmin:password "http://localhost:8081/artifactory/api/storage/repository/path/to/file.jar?properties=build.name"

在上面的REST中,我将获得名为“build.name”的属性的值。您可以使用您需要的任何密钥替换它。

答案 1 :(得分:0)

只需尝试一下:

curl --silent --show-error "http://your-artifactory-server:8081/artifactory/api/storage/my_repo/some_path1/some_path2/artifact_file.txt?properties 

它将输出:

{
 "properties": {
     "prop1": [ "value1" ],
     "prop2": [ "value2" ],
     ...
     ....
  },
  "uri": "http://your-artifactory-server:8081/artifactory/api/storage/my_repo/some_path1/some_path2/artifact_file.txt"
}

如果要获取给定属性的值,请尝试以下操作:

curl --silent --show-error "http://your-artifactory-server:8081/artifactory/api/storage/my_repo/some_path1/some_path2/artifact_file.txt?properties | grep "prop2" | sed "s/[\"\[ ,]//g;s/]//g" | cut -d':' -f2