使用Jfrog进行库文件批量的增删改查

呵呵,因为jfrog在中文搜索里还没有人实践过,经过一番深入研究后发现了一种方法。

jfrog artifactory是一款二进制存储管理工具,用来管理构建工具(如:maven、gradle)等所依赖的二进制仓库,以方便管理第三方库和发布目标版本库,从而提高软件开发效率。它提供大量的插件以利于和不同工具之间的整合,内部使用权限管理更加安全,并支持高并发等等特性。

  jfrog的功能有很多,只是没有相关的中文参考,可以在CLI for JFrog Artifactory - JFrog CLI - JFrog Wiki使用手册网站上查找自己需要的功能。

一.

基本的jfrog删除命令 :

  ./jfrog rt del "fan_test/FOA/" --url="http://xa.artifactory..com.cn/artifactory/" --user=XXXX--password=XXXXXX      

--删除命令;

替换对应参数值,其它不变:

URL:制品库对应服务地址,一般为以下其中一个:

                 https://artnj..com.cn/artifactory/

                 https://artsz..com.cn/artifactory/

                 https://artxa..com.cn/artifactory/

                 https://artnf..com.cn/artifactory/

库名:

repo=aiop-snapshot-generic

用户名:

user=admin

密码:

password=***

(使用的时候一定要注意命令的格式是要标准的,否则会报错)

二.

当想要对几千个文件进行删除的时候就会发现这项工作不能一条一条命令的完成。jfrog提供了一种编写json文件规范的执行命令形式来提供了一种对大批量文件进行操作的功能。

例如: 删除-cmcc-snapshot-generic库中的文件。 删除的对象: 所有创建时间相对于现在的时间的超过100天的库文件。

实现过程如下 :

#touch template.spec

#vi  template.spec: 

{

"files": [

  {

    "aql": {

      "items.find": {

        "repo": {"$eq":"-cmcc-snapshot-generic"},               #库名repo换成自己的库名

        #"path": {"$match":"_cmdc"},                                       #路径换成自己匹配的路径目录

        "$or": [

          { 

            "$and": [

              {

                "created": { "$before":"100d" }                      #100天前

              }

            ]

          }

        ]

      }

    }

  }

]

}

#./jfrog rt del  --spec  template.spec  --url="https://artnj.com.cn/artifactory"  --user=1030 --password=*********  --dry-run

替换对应参数值,其它不变:

URL:制品库对应服务地址,一般为以下其中一个:

                 https://artnj..com.cn/artifactory/

                 https://artsz..com.cn/artifactory/

                 https://artxa..com.cn/artifactory/

                 https://artnf.zte.com.cn/artifactory/

库名:

repo=aiop-snapshot-generic

用户名:

user=admin

密码:

password=***

实现结果如下 :

最后删除成功会返回一个status:success的结构体。

三.    jfrog的这种功能还可以用于增删改查,管理者根据自己的需求编写自己的spec结构实现此功能。参考如下:

官方网站  :CLI for JFrog Artifactory - JFrog CLI - JFrog Wiki

jfrog   --spec 命令的使用

jfrog : 使用文件规范-UsingFileSpecs

要实现复杂的文件操作,可能需要多个 CLI 命令。例如,可能需要将几组不同的文件上传到不同的存储库。为了简化这些复杂操作的实现,可以使用 JFrog Artifactory 使用 选项替换内联命令参数和选项来应用 JFrog CLI 下载、 上传、 移动、复制 和 删除命令 --spec。同样,可以创建和更新版软件包通过提供 --spec命令选项。每个命令都使用 JSON 格式的文件规范数组,并具有如下部分所述的相应架构。请注意,如果使用内联选项和文件规范发出这些命令中的任何一个,则内联选项会覆盖文件规范中指定的对应项。

文件规范架构

  

删除命令的文件规范架构如下:

{

    "files": [

        {

            "pattern" or "aql": "[Mandatory]",

            "props": "[Optional]",

            "excludeProps": "[Optional]",

            "recursive": "[Optional, Default: 'true']",

            "exclusions": ["[Optional, Applicable only when 'pattern' is specified]"],

            "archiveEntries": "[Optional]",

            "build": "[Optional]",

            "bundle": "[Optional]",

            "sortBy" : ["[Optional]"],

            "sortOrder": "[Optional, Default: 'asc']",

            "limit": [Optional],

            "offset": [Optional]

        }

    ]

}

Search, Set-Props and Delete Commands Spec Schema

The file spec schema for the search and delete commands are as follows:

{

    "files": [

        {

            "pattern" or "aql": "[Mandatory]",

            "props": "[Optional]",

            "excludeProps": "[Optional]",

            "recursive": "[Optional, Default: 'true']",

            "exclusions": ["[Optional, Applicable only when 'pattern' is specified]"],

            "archiveEntries": "[Optional]",

            "build": "[Optional]",

            "bundle": "[Optional]",

            "sortBy" : ["[Optional]"],

            "sortOrder": "[Optional, Default: 'asc']",

            "limit": [Optional],

            "offset": [Optional]

        }

    ]

}

以下文件规范查找符合以下条件的所有文件夹:

1. 它们位于 my-repo 存储库下。

2. 它们位于名称与 abc-*-xyz 匹配的文件夹中,位于存储库的根目录。

3. 他们的名字匹配ver_*

4. 它们是在 7 天前创建的。

{

  "files": [

    {

      "aql": {

        "items.find": {

          "repo": "myrepo",

          "path": {"$match":"abc-*-xyz"},

          "name": {"$match":"ver_*"},

          "type": "folder",

          "$or": [

            {

              "$and": [

                {

                  "created": { "$before":"7d" }

                }

              ]

            }

          ]

        }

      }

    }

  ]

}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值