删除工件后包含工件的Jfrog工件删除文件夹

时间:2019-12-05 13:03:06

标签: artifactory jfrog-cli

我正在使用此规范文件删除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 *”,如图所示,其中包含工件,而不仅仅是文件夹中的工件。

enter image description here

我尝试了以下操作,但是没有用:

 "items.find": {
          "repo": "repo1",
          "path": "com/domain/name",
          "name": {"$match":"20*"},
          "type": "folder",

说没有伪像。

Jfrog还可以删除除最后2个以外的所有工件吗?只想保留最后2个而不是全部保留,并且必须每隔一定时间使用此脚本删除它们

谢谢!

1 个答案:

答案 0 :(得分:4)

JFrog CLI是在Artifactory中执行此类操作的最推荐工具之一。 为了删除所需的文件和文件夹,您可以使用CLI delete command。 与您编写的FileSpec一起,命令应类似于:

jfrog rt del --spec <PATH-TO-SPEC-FILE>

要验证要删除的文件,可以在删除之前运行搜索命令:

jfrog rt s --spec <PATH-TO-SPEC-FILE>

或让delete命令输出找到的文件列表。

要删除您要求的文件夹,FileSpec应该如下所示:

{
"files": [{
    "aql": {
        "items.find": {
            "repo": "repo1",
            "path": "com/domain/name",
            "created": {
                 "$before": "3mo"
            },
            "type":"folder",
            "name": {"$match":"20*"}
        }
    }
}]}

一种用于保持Artifactory与旧的 build 工件保持清洁的不同方法是使用build-retention。该操作将删除旧的内部版本,并且可以选择删除与已删除内部版本相关的工件。您可以在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中,您可以找到许多有用的插件的示例,例如this plugin for cleaning artifacts。 如插件页面中所述,可以将清理过程设置为作为计划作业自动运行。