我正在努力寻找使用 AQL 和 CLI 从 Artifactory 清理所有 RPM 存储库的解决方案。例如,我想删除过去 12 个月内未下载的所有内容(如果创建日期早于 1 年并且从未下载过)。我认为最难的部分是我还需要在每个存储库中保留最后 x 个 RPM 文件(例如最后下载的最后 3 个 rpm 文件)。知道如何执行此任务或是否有可能,尤其是保留最后下载的部分。任何建议表示赞赏。
谢谢你,丹妮
我正在努力寻找使用 AQL 和 CLI 从 Artifactory 清理所有 RPM 存储库的解决方案。例如,我想删除过去 12 个月内未下载的所有内容(如果创建日期早于 1 年并且从未下载过)。我认为最难的部分是我还需要在每个存储库中保留最后 x 个 RPM 文件(例如最后下载的最后 3 个 rpm 文件)。知道如何执行此任务或是否有可能,尤其是保留最后下载的部分。任何建议表示赞赏。
谢谢你,丹妮
JFrog CLI 是一个紧凑而智能的客户端,它提供了一个简单的界面来自动访问 Artifactory。作为 REST API 的包装器。
安装 JFrog CLI
brew install jfrog-cli-go
curl -fL https://getcli.jfrog.io | sh
jfrog target command-name global-options command-options arguments
目标 - 您希望在其上执行命令的产品:
rt: JFrog Artifactory
bt: JFrog Bintray
mc: JFrog Mission Control
xr: JFrog Xray
配置 JFrog cli
jfrog rt c Artifactory --url=https://artifactory.eqs.intra/artifactory --apikey=<add api key> #can generate api key from user profile
登录到工件->单击用户名并编辑配置文件->在身份验证设置下
显示来自-注册表--docker
路径--*
下载状态的工件= null
#未下载-之前创建1 month
{
"files": [
{
"aql": {
"items.find": {
"repo": {"$eq":"docker"},
"path": {"$match":"*"},
"name": {"$match":"*"},
"stat.downloads":{"$eq":null},
"$or": [
{
"$and": [
{
"created": { "$before":"1mo" }
}
]
}
]
}
}
}
]
}
运行搜索并验证您要删除的包
jfrog rt s --spec artifactory.spec
jfrog rt del --spec artifactory.spec