Jfrog artifactory 删除包含工件的文件夹后删除它们
Jfrog artifactory delete folder of containing artifacts after remove them
我正在使用此规范文件删除超过 3 个月的旧工件。
{
"files": [{
"aql": {
"items.find": {
"$or": [{
"$and": [{
"repo": "repo1",
"created": {
"$before": "3mo"
}
}],
"$and": [{
"repo": "repo2",
"created": {
"$before": "3mo"
}
}],
"$and": [{
"repo": "repo3",
"created": {
"$before": "3mo"
}
}]
}]
}
}
}]
}
但我想删除以“2019*”开头的孔文件夹,如图片中所示,其中包含工件,而不仅仅是文件夹中的工件。
我尝试了以下但没有成功:
"items.find": {
"repo": "repo1",
"path": "com/domain/name",
"name": {"$match":"20*"},
"type": "folder",
说没有创建神器。
还有 Jfrog 可以删除除最后 2 个以外的所有工件吗?只想保留最后 2 个而不是全部,并且必须每隔一定时间用这个脚本删除它们
谢谢!!
对于不止一个回购协议?
{
"files": [{
"aql": {
"items.find": {
"$or": [{
"$and": [{
"repo": "repo1",
"path": "com/foo/bar",
"created": {
"$before": "3mo"
}
"type": "folder",
"name": {"$match":"20*"}
}],
"$and": [{
"repo": "repo2",
"path": "com/foo/bart",
"created": {
"$before": "3mo"
}
"type": "folder",
"name": {"$match":"20*"}
}],
"$and": [{
"repo": "repo3",
"path": "com/foo/bar",
"created": {
"$before": "3mo"
}
"type": "folder",
"name": {"$match":"20*"}
}]
}]
}
}
}]
}
在 Artifactory 中执行此类操作的最推荐工具之一是 JFrog CLI。
为了删除你想要的文件和文件夹,你可以使用CLI delete command。
加上你写的 FileSpec,你的命令应该是这样的:
jfrog rt del --spec <PATH-TO-SPEC-FILE>
要验证要删除的文件,您可以运行删除前的搜索命令:
jfrog rt s --spec <PATH-TO-SPEC-FILE>
或者让删除命令输出它找到的文件列表。
要删除您要求的文件夹,FileSpec 应如下所示:
{
"files": [{
"aql": {
"items.find": {
"repo": "repo1",
"path": "com/domain/name",
"created": {
"$before": "3mo"
},
"type":"folder",
"name": {"$match":"20*"}
}
}
}]}
另一种使您的 Artifactory 与旧 build 工件保持清洁的方法是使用构建保留。此操作会删除旧的 builds,并且可以选择删除与已删除构建关联的工件。您可以在 JFrog CLI documentation page 中阅读有关 丢弃旧版本 的内容。
使用 JFrog CLI 的丢弃命令如下:
jfrog rt bdi <BUILD-NAME> --max-days 90 --delete-artifacts true
除了使用 JFrog CLI 删除工件和构建之外,Artifactory Pro 支持 User Plugins。您可以编写自己的插件或编辑现有插件以在 Artifactory 中执行许多操作。
在User-plugins GitHub repository, you can find examples for many useful plugins, such as this plugin for cleaning artifacts。
正如插件页面中所解释的,清理进程可以设置为 运行 自动作为计划作业。
我正在使用此规范文件删除超过 3 个月的旧工件。
{
"files": [{
"aql": {
"items.find": {
"$or": [{
"$and": [{
"repo": "repo1",
"created": {
"$before": "3mo"
}
}],
"$and": [{
"repo": "repo2",
"created": {
"$before": "3mo"
}
}],
"$and": [{
"repo": "repo3",
"created": {
"$before": "3mo"
}
}]
}]
}
}
}]
}
但我想删除以“2019*”开头的孔文件夹,如图片中所示,其中包含工件,而不仅仅是文件夹中的工件。
我尝试了以下但没有成功:
"items.find": {
"repo": "repo1",
"path": "com/domain/name",
"name": {"$match":"20*"},
"type": "folder",
说没有创建神器。
还有 Jfrog 可以删除除最后 2 个以外的所有工件吗?只想保留最后 2 个而不是全部,并且必须每隔一定时间用这个脚本删除它们
谢谢!!
对于不止一个回购协议?
{
"files": [{
"aql": {
"items.find": {
"$or": [{
"$and": [{
"repo": "repo1",
"path": "com/foo/bar",
"created": {
"$before": "3mo"
}
"type": "folder",
"name": {"$match":"20*"}
}],
"$and": [{
"repo": "repo2",
"path": "com/foo/bart",
"created": {
"$before": "3mo"
}
"type": "folder",
"name": {"$match":"20*"}
}],
"$and": [{
"repo": "repo3",
"path": "com/foo/bar",
"created": {
"$before": "3mo"
}
"type": "folder",
"name": {"$match":"20*"}
}]
}]
}
}
}]
}
在 Artifactory 中执行此类操作的最推荐工具之一是 JFrog CLI。 为了删除你想要的文件和文件夹,你可以使用CLI delete command。 加上你写的 FileSpec,你的命令应该是这样的:
jfrog rt del --spec <PATH-TO-SPEC-FILE>
要验证要删除的文件,您可以运行删除前的搜索命令:
jfrog rt s --spec <PATH-TO-SPEC-FILE>
或者让删除命令输出它找到的文件列表。
要删除您要求的文件夹,FileSpec 应如下所示:
{
"files": [{
"aql": {
"items.find": {
"repo": "repo1",
"path": "com/domain/name",
"created": {
"$before": "3mo"
},
"type":"folder",
"name": {"$match":"20*"}
}
}
}]}
另一种使您的 Artifactory 与旧 build 工件保持清洁的方法是使用构建保留。此操作会删除旧的 builds,并且可以选择删除与已删除构建关联的工件。您可以在 JFrog CLI documentation page 中阅读有关 丢弃旧版本 的内容。 使用 JFrog CLI 的丢弃命令如下:
jfrog rt bdi <BUILD-NAME> --max-days 90 --delete-artifacts true
除了使用 JFrog CLI 删除工件和构建之外,Artifactory Pro 支持 User Plugins。您可以编写自己的插件或编辑现有插件以在 Artifactory 中执行许多操作。
在User-plugins GitHub repository, you can find examples for many useful plugins, such as this plugin for cleaning artifacts。 正如插件页面中所解释的,清理进程可以设置为 运行 自动作为计划作业。