如何在Artifactory中列出指定目录的直接子文件夹?
如何在Artifactory中获取指定路径的直接子文件夹列表
我之前也碰到过一模一样的问题!Artifactory自带的命令行工具确实没提供像ls或dir那样直接列目录的命令,而search递归列出所有文件又完全不是我们要的效果。不过别担心,有两个靠谱的方法能帮你快速拿到/foo下的直接构建文件夹:
方案1:用JFrog CLI的list命令(最推荐)
JFrog官方的CLI工具专门做了list命令来处理目录浏览,而且支持精准控制递归深度。你只需要执行这条命令:
jf rt list "foo/*" --depth 1
--depth 1参数会强制命令只遍历/foo的直接子层级,返回的结果就是你要的123、124这类直接子文件夹,完全不会递归到里面的文件。
方案2:调用Artifactory REST API
如果暂时没法用JFrog CLI,直接调用REST API也能搞定。通过depth参数限制层级,再配合工具提取结果:
# 替换成你的Artifactory地址、仓库名和账号信息 curl -u 你的用户名:你的密码 "https://你的artifactory地址/api/storage/你的仓库名/foo?depth=1"
返回的JSON里,children字段就是所有直接子文件夹的信息。要是想只拿文件夹名称,可以用jq过滤:
curl -u 你的用户名:你的密码 "https://你的artifactory地址/api/storage/你的仓库名/foo?depth=1" | jq '.children[] | .uri'
这样就能输出干净的子文件夹路径了。
小提示:JFrog CLI是官方主推的工具,功能比原生的Artifactory命令行全太多,建议你装上它,后续清理旧构建的脚本也能更方便地用它来操作。
内容的提问来源于stack exchange,提问作者Wim Coenen
相关产品推荐
相关产品推荐

