You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用JFrog CLI下载Artifactory指定属性文件夹内容失败

问题根源

你的AQL仅筛选了type: folder类型的条目,也就是只匹配到build03文件夹本身,并未包含其下的文件。虽然添加了recursive: true参数,但该参数是对AQL返回结果的递归处理——而AQL仅返回了文件夹,递归文件夹本身不会自动抓取内部文件。

解决办法

方法一:修改AQL关联父文件夹属性,直接匹配目标文件

由于release_ready属性挂载在build03文件夹上,文件本身无此属性,需用AQL的$join语法关联文件与其父文件夹的属性,筛选出属于release_ready=true文件夹下的所有文件:

修改后的file spec:

{
  "files": [
    {
      "aql": {
        "items.find": {
          "repo": "product-repo",
          "path": {"$match": "releases/ProductY/*/*"},
          "type": "file"
        },
        "join": {
          "items.find": {
            "repo": "product-repo",
            "path": {"$match": "releases/ProductY/*"},
            "type": "folder",
            "@release_ready": {"$eq": "true"}
          },
          "on": {
            "$and": [
              {"items.repo": "$repo"},
              {"items.path": {"$match": "$path/*"}}
            ]
          }
        }
      },
      "target": "some/folder/on/my/disk/{repo}/{path}/{name}"
    }
  ]
}

该配置通过$join将文件与父文件夹关联,确保仅下载release_ready=true的build文件夹下的所有文件,target中的变量会保留原目录结构。

方法二:先获取目标文件夹路径,再直接下载路径下全部内容

这种方式更简洁,分两步操作:

  1. 先用AQL搜索得到build03的完整路径:
jfrog rt s --spec myfilespec.json --format json | jq -r '.[0].path'

(若无jq工具,可直接查看搜索结果中的path字段)
2. 通过路径匹配下载该路径下所有内容,可直接用命令:

jfrog rt dl "product-repo/releases/ProductY/build03/**" "some/folder/on/my/disk/" --recursive=true

或使用对应的file spec:

{
  "files": [
    {
      "pattern": "product-repo/releases/ProductY/build03/**",
      "target": "some/folder/on/my/disk/",
      "recursive": true
    }
  ]
}

注:日志中出现的procduct-repo、repeases/ProgramY应为拼写笔误,实际spec路径正确即可忽略。

内容的提问来源于stack exchange,提问作者Hunter2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:01:38