我正在尝试编写一个脚本来清理 Artifactory 中通用文件存储库中的旧版本。我想第一步是查看存储库并检查其中有哪些版本。
每个构建都显示为 的子文件夹/foo,因此例如我有文件夹/foo/123、/foo/124、/foo/125/ 等。
似乎没有lsordir命令。所以我尝试了search命令:
jfrog rt search my-repo/foo/*
Run Code Online (Sandbox Code Playgroud)
但这递归地列出了所有文件,这不是我要找的。我只需要直接子文件夹的列表。我也试过
jfrog rt search my-repo/foo/* --recursive=false
Run Code Online (Sandbox Code Playgroud)
但这不会返回任何结果,因为搜索命令只返回文件,而不是文件夹。
如何列出 Artifactory 存储库中给定文件夹的子文件夹?
can*_*Now 10
使用curl 和jq 来实现这一点还有另一种方法
curl -s http://myatifactory.domain:4567/artifactory/api/storage/myRepo/myFolder | jq -r '.children[] |select(.folder==true) |.uri'
Run Code Online (Sandbox Code Playgroud)
说明:Curl用于获取文件夹信息,并将其通过管道传输到JQ,然后 JQ 显示键值为的数组uri的所有键。childrenfoldertrue
只是为了更容易理解 -curl 获取的 json 看起来像这样(来自神器文档的示例)
{
"uri": "http://localhost:8081/artifactory/api/storage/libs-release-local/org/acme",
"repo": "libs-release-local",
"path": "/org/acme",
"created": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ),
"createdBy": "userY",
"lastModified": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ),
"modifiedBy": "userX",
"lastUpdated": ISO8601 (yyyy-MM-dd'T'HH:mm:ss.SSSZ),
"children": [
{
"uri" : "/child1",
"folder" : "true"
},{
"uri" : "/child2",
"folder" : "false"
}
]
}
Run Code Online (Sandbox Code Playgroud)
对于它,命令的输出将为/child1.
当然,这里假设人工仓库myRepo允许匿名读取。
小智 6
您应该在这里查看 AQL(Artifactory Query Langage):https ://www.jfrog.com/confluence/display/RTF/Artifactory+Query+Language
例如,以下 AQL 将检索位于“foo”文件夹下“my-repo”中的所有文件夹,并将显示按文件夹名称排序的结果:
items.find(
{
"type":"folder",
"repo":{"$eq":"my-repo"},
"path":{"$eq":"foo"}
}
)
.include("name")
.sort({"$desc":["name"]})
Run Code Online (Sandbox Code Playgroud)
对于清理,您还可以查看以下示例,其中列出了一个多月前创建但从未下载过的 10 个最大工件:
items.find(
{
"type":"file",
"repo":{"$eq":"my-repo"},
"created":{"$before":"1mo"},
"stat.downloads":{"$eq":null}
}
)
.include("size","name")
.sort({"$desc":["size"]})
.limit(10)
Run Code Online (Sandbox Code Playgroud)
jfrog cli 现在包含--include-dirs搜索选项。
命令:
jf rt search --recursive=false --include-dirs path/
Run Code Online (Sandbox Code Playgroud)
基本上会像一个ls.
| 归档时间: |
|
| 查看次数: |
7969 次 |
| 最近记录: |