【问题标题】:Delete artifacts which are not downloaded for 6 months删除 6 个月未下载的工件
【发布时间】:2021-01-22 12:13:05
【问题描述】:

在 JFrog Artifactory 中,我需要删除 6 个月内未下载的工件。我已经通过JFrog repository。提到它通过 REST API 运行,但我不太确定如何使用它。

我们如何实现这一点?或者是否有其他方法?

【问题讨论】:

    标签: artifactory artifacts jfrog-cli artifactory-query-lang jfrog


    【解决方案1】:

    最简单的方法是使用 JFrog CLI 的 delete 命令。

    该命令接受file spec

    使用 Relative Time Operators 编写 AQL 查询,并将其传递到文件规范的 aql 字段中。

    【讨论】:

    • Jfrog CLI 必须手动完成吗?我有这个场景要自动完成,我们可以使用 Jfrog CLI 在每天晚上的某个固定时间运行吗?请提供您的意见。
    • 您可以在脚本中使用 Jfrog CLI,它的所有命令都可以非交互方式执行。设置 env var CI=true 以禁用所有交互式过程。编写脚本或使用 CI 服务器按计划运行。
    • 感谢您的输入,我应该使用 artifactCleanUp 插件。你能提供你的意见吗?
    【解决方案2】:

    我建议参考这个用户插件,artifactCleanUp plugin 可用于删除某些天/月未下载的工件。

    【讨论】:

    • @Kashif,我正在检查这个插件。为了执行这个插件,我们需要将 groovy、properties 和 json 文件放在 var/etc/artifactory/plugins 文件夹中,并且我们需要运行 curl 命令。这是正确的做法吗?我对它的执行有点困惑。
    • @Kivi,将 artifactCleanup.groovy 和 artifactCleanup.json 放在 /etc/plugins 文件夹(/var/etc/artifactory/plugins)下,不要将 artifactCleanup.properties 放在已弃用。一旦 artifactCleanup.groovy 和 artifactCleanup.json 以正确的权限正确放置,然后使用 repo 名称、时间单位、时间间隔等更改 artifactCleanup.json 并运行重新加载插件 rest API jfrog.com/confluence/display/JFROG/…
    • 重新加载插件后,使用以下 curl 运行插件, curl -X POST -v -u admin:password "localhost:8081/artifactory/api/plugins/execute/…"
    • 感谢 Kashif,所以文件级别我们不需要提及 Jfrog URL,只有在执行 CURL 命令时才需要提及?
    • 是的,文件级不需要提及JFrog URL,只在使用curl执行插件时传递JFrog URL。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-01-29
    相关资源
    最近更新 更多