如何通过 cURL 列出 Artifactory 上 Maven 存储库中的所有子目录?

How to list all subdirectories from a Maven repository on Artifactory via cURL?

所以我在 Artifactory 上有一个 docker 存储库,它使用以下命令列出 url 中的所有文件夹和子文件夹:

curl -ksSL -H "X-JFrog-Art-Api:ApiKeyHere" "https://artifactory.service.company:443/artifactory/api/docker/docker-local/v2/_catalog"

输出为:

{ "repositories" : [ "folder1/subfolder1", "folder1/subfolder2", "folder2/subfoler1" ] } 等等。

但是,我已经尝试并尝试使用以下方法为 Maven 存储库执行此操作:

curl -kssL -H "X-JFrog-Art-Api:ApiKeyHere" "https://artifactory.service.company:443/artifactory/api/storage/maven-repo/com/company/etc/etc"

但是输出是这样的:

{
  "repo" : "maven-repo",
  "path" : "/com/company/etc/etc",
  "created" : "2019-05-21T01:00:37.173+10:00",
  "createdBy" : "admin",
  "lastModified" : "2019-05-21T01:00:37.173+10:00",
  "modifiedBy" : "admin",
  "lastUpdated" : "2019-05-21T01:00:37.173+10:00",
  "children" : [ {
    "uri" : "/folder1",
    "folder" : true
  }, {
    "uri" : "/foler2",
    "folder" : true
  }, {
    "uri" : "/folder3",
    "folder" : true
  } ], "uri" : "https://artifactory.service.company/artifactory/api/storage/maven-repo/com/company/etc/etc"
}

可以看出,此命令仅 returns 文件夹比 curled 的文件夹深 1 级,而 Docker 存储库的文件夹列出了每个文件夹及其子文件夹.如果我尝试将某种形式的 /_catalog 添加到 Maven curl 命令,类似于 Docker repo it returns a 404 的命令。只是想知道是否有一种使输出类似于 Docker 命令的方法?

查看 Artifactory List Files REST API 调用。我认为这满足了您的要求。

它有很多参数可以帮助你控制输出。结合 jq,你就有了一个很好的上市工具。

另一个选项是 JFrog CLI, which has a Search Files 选项。