因此,我以前有一个脚本,在我的Artifactory存储库中搜索某个属性的文件夹。
curl -i -X GET "${ARTIFACTORY_URI}/api/search/prop?my-prop=aaa&repos=my-repo
到目前为止一切顺利。我部署工件的方法是将它们放置在子文件夹中,每个子文件夹都被分配了属性my-prop。然后,当我运行此命令时,我得到了一个满足搜索条件的子文件夹列表。这很有效,因为这些子文件夹都直接位于存储库my-repo中。
但是现在我们不得不对Artifactory进行一些重组。现在我试图列出的子文件夹位于repo中的子文件夹内的子文件夹中。我的命令仍然有效,但它返回了所有的子文件夹。
例如,请考虑以下内容:
my-repo:
* folder1
+ folder1-1
- folder1-1-1 (my-prop=aaa)
- folder1-1-2 (my-prop=bbb)
+ folder1-2
- folder1-2-1 (my-prop=aaa)
* folder2
+ folder2-1
- folder2-1-1 (my-prop=aaa)
因此,当使用相同的命令搜索my-prop=aaa时,我现在得到的是folder 1 -1-1、folder 1 -2-1和folder 2 -1-1。但我想做的是将搜索限制在子子文件夹folder 1 -1。我试图简单地将路径添加到repos
参数中,但它不起作用。
curl -i -X GET "${ARTIFACTORY_URI}/api/search/prop?my-prop=aaa&repos=my-repo/folder1/folder1-1
所以我的问题是如何做到这一点?Artifactory网站是一个火车残骸,当然不是很有帮助。是否有一个额外的文件夹/路径参数,我可以使用?我想指出的是,我正在一个令人难以置信的限制客户系统上工作,并没有访问JFrog CLI工具,所以我必须使用curl和wget做一切。
1条答案
按热度按时间fnx2tebb1#
您应该能够使用AQL(Artifactory Query Language,工件查询语言)来实现这一点。
对于您的示例,请使用以下内容:
这将在
my-repo
中搜索具有给定属性的 folders,并位于folder1
的精确路径下。如果路径应该是模式而不是精确匹配,则可以使用其他运算符,如$match
。有关完整的AQL语法和准则,请参见:Artifactory Query Language