如何在Artifactory指定文件夹及子文件夹中获取特定名称的最后更新文件?
解决Artifactory指定文件名的最后更新文件路径问题
自带的Get Last Modified Item API确实没法指定文件名,要搞定这个需求可以这么做:
用AQL精准筛选目标文件
Artifactory的AQL(Artifactory Query Language)支持按文件名、路径范围查询,还能返回修改时间。写个查询语句就能把指定根文件夹下所有name_file都捞出来:items.find({ "repo": "你的仓库名称", "path": {"$match": "目标根文件夹/**"}, "name": "name_file" }).include("name", "path", "modified")这个查询会返回所有符合条件的文件,包含它们的完整路径片段和修改时间戳。
自己筛选最后更新的文件
拿到AQL的返回结果后,把所有条目按modified字段(时间戳)降序排序,排在最前面的就是最后更新的那个,直接把它的path和name拼起来就是完整路径。用jfrog CLI简化流程(可选)
要是平时用jfrog CLI,能一步到位执行查询+筛选,比如结合jq工具:jfrog rt search --spec '{ "files": [ { "aql": { "items.find": { "repo": "your-repo-name", "path": {"$match": "target-root-folder/**"}, "name": "name_file" }.include("name", "path", "modified") } } ] }' | jq '.results | sort_by(-.modified) | .[0] | .path + "/" + .name'
内容的提问来源于stack exchange,提问作者Younes Ben Tlili
相关产品推荐
相关产品推荐

