【问题标题】:Can I deduplicate content of zip files on Artifactory side?我可以在 Artifactory 端删除 zip 文件的内容吗?
【发布时间】:2018-03-03 08:40:18
【问题描述】:

我正在使用 JFrom Artifactory,它具有重复数据删除功能 - see documentation。我们的部署过程如下:

  1. 使用库创建 zip 文件:jar、dll 等。这与 war file 或 fat jar 相同。
  2. 部署期间:只需提取 zip 文件的内容并执行小型初始化脚本。

如您所知,这些文件中的大部分内容已经在 Artifactory 上:

  1. 第三方 java 依赖项已经在同一个 Artifactory 上
  2. 以前的安装有很多相同的二进制文件

所以,问题:如何让 Artifactory 在上传期间在服务器端解压缩我的档案,然后在下载期间透明地压缩回来?

此解决方案将为我提供主要的重复数据删除,具有以下优势:

  1. 节省磁盘空间
  2. 降低服务器 IO

而且我知道,会有以下缺点:

  1. 可以更改 zip 包的校验和
  2. 在工件上传和下载期间可能会增加 CPU 负载

【问题讨论】:

    标签: deployment duplicates artifactory


    【解决方案1】:

    我认为这在客户端透明地是不可行的。但是,如果您准备好更换客户,我可以想象:

    而不是使用任何客户端或 JFrog CLI 等简单地上传您的 ZIP / WAR

    jfrog rt u my.zip repo-release/test/0.5/my-0.5.zip
    

    你会在要求它在目标上爆炸的同时上传它

    jfrog rt u  --explode my.zip repo-release/test/0.5/my-0.5.zip/thisisignored.zip
    

    设置完成后,您应该能够使用

    检索原始 zip
    curl -X GET -uadmin:password "http://localhost:8081/artifactory/repo-release/test/0.5/my-0.5.zip;downloadDirectory+=true" > my.zip
    

    【讨论】:

    • 我完全同意你的看法。此外,通过使用 Gradle,你可以修改上传任务。而且您显示了下载架构更改,但是我希望在服务器端看到这一点。这非常有用,例如,对于 Docker 存储和战争文件存储。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-26
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-25
    相关资源
    最近更新 更多