Artifactory删除超过6个月的所有工件

spu*_*der 4 artifactory

如何从神器中删除与模式匹配的所有工件(例如,超过6个月)?

使用curl或go库

spu*_*der 6

jfrog cli采用"spec文件"来搜索工件.有关jfrog spec文件的信息,请参见此处

jfrog cli 文档可在此处获得:

创建一个aql搜索查询以查找所需的工件:

如果您的aql搜索语法如下:

/tmp/foo.query

items.find(
  {
    "repo":"foobar",
    "modified" : { "$lt" : "2016-10-18T21:26:52.000Z" }
  }
)
Run Code Online (Sandbox Code Playgroud)

你可以找到像这样的文物:

curl -X POST -u admin:<api_key> https://artifactory.example.com/artifactory/api/search/aql -T foo.query
Run Code Online (Sandbox Code Playgroud)

那么spec文件就是

/tmp/foo.spec

{
  "files": [
    {
      "aql": {
        "items.find": {
          "repo": "foobar",
          "$or": [
            {
              "$and": [
                {
                  "modified": { "$lt": "2016-10-18T21:26:52.000Z"}
                }
              ]
            }
          ]
        }
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

你会像这样使用golang库:

jfrog rt del --spec /tmp/foo.spec --dry-run
Run Code Online (Sandbox Code Playgroud)

您也可以进行相对约会,而不是修改

"modified": { "$before":"6mo" }
Run Code Online (Sandbox Code Playgroud)

如果您收到错误405方法不允许,请验证您的api或密码是否正确,并尝试使用PUT而不是POST