我有通用存储库“ my_repo”。我将文件从jenkins上传到my_repo / branch_buildNumber / package.tar.gz之类的路径,并带有“ 1.9.0”,“ 1.10.0”等自定义属性“ tag”。我想获取具有最新/最新标签。
我试图通过此链接修改示例2 ...https://www.jfrog.com/confluence/display/JFROG/Using+File+Specs#UsingFileSpecs-Examples
...,并添加排序并限制此处的处理方式...https://www.jfrog.com/confluence/display/JFROG/Artifactory+Query+Language#ArtifactoryQueryLanguage-limitDisplayLimitsandPagination
但是我收到“未知属性描述”错误。
{
"files": [
{
"pattern": "my-local-repo/*.zip",
"target": "froggy/"
}
]
}
或者,您可以使用“ aql”代替“ pattern”。以下规范提供与上一个相同的结果:
{ "files": [ { "aql": { "items.find": { "repo": "my-local-repo", "$or": [ { "$and": [ { "path": { "$match": "*" }, "name": { "$match": "*.zip" } } ] } ] } }, "target": "froggy/" } ] }
文件规范中允许的AQL语法不包括Artifactory查询语言允许的所有内容。例如,您不能使用“ include”或“ sort”子句。设置了这些限制,以使响应结构已知且恒定。但是,无论您选择使用“ pattern”还是“ aql”,排序都仍然适用于File Specs。它支持抛出“ specBy”,“ sortOrder”,“ limit”和“ offset”文件规范属性。例如,以下文件规格将仅下载3个最大的zip文件:
{ "files": [ { "aql": { "items.find": { "repo": "my-local-repo", "$or": [ { "$and": [ { "path": { "$match": "*" }, "name": { "$match": "*.zip" } } ] } ] } }, "sortBy": ["size"], "sortOrder": "desc", "limit": 3, "target": "froggy/" } ] }
而且您可以使用“ pattern”而不是“ aql”进行相同的操作:
{ "files": [ { "pattern": "my-local-repo/*.zip", "sortBy": ["size"], "sortOrder": "desc", "limit": 3, "target": "local/output/" } ] }
您可以阅读有关文件规范here的更多信息。