【问题标题】:Jenkins check file exists inside zip fileJenkins 检查文件存在于 zip 文件中
【发布时间】:2022-06-07 15:44:33
【问题描述】:

有没有办法在不解压缩的情况下检查 zip 文件中是否存在文件。我正在使用 Artifactory 。如果使用 curl 不能。可以给我建议

我在下面试过

 sh(script: \"curl -o /dev/null -sf <antifactory url>\")

这总是返回成功 及以下

unzip -l <file.zip> | grep -q <file name>

这需要安装解压缩

  • 您是否只想在 Artifactory 中检查拉链?或者您想检查您拥有的本地文件?
  • 检查反工厂。我试过 curl -o /dev/null。但它不起作用。如果不能,我的第一选择是 antifactory。然后需要从antifactory下载zip并检查

标签: jenkins curl artifactory


【解决方案1】:

this page 中提到的 Artifactory 7.15.3 开始,默认情况下禁用存档搜索。你能确认你是否是高于此的版本。如果是,您可以通过导航到 Admin > Artifactory > Archive Search Enabled 并启用此复选框来启用此功能。但请注意,如果我们启用此功能,它会不断为每个存档文件将大量信息写入数据库,并可能影响性能。

稍后您可以在 zip 文件中搜索项目。下面是一个示例命令,我在其中从 curl 的 zip 中搜索 .class 文件。您可以在 Jenkis 中选择与此类似的选项。

$ curl -uadmin:password -X GET "http://localhost:8082/artifactory/api/search/archive?name=*.class&repos=test" -H "Content-type: application/json"

【讨论】:

    【解决方案2】:

    您可以使用 bash 命令unzipgrep

    unzip -l my_file.zip | grep -q file_to_search
    
    # Example 
    $ unzip -l 99bottles.zip | grep -q 99bottles.pdf && echo $?
    0
    

    附言如果 zip 包含目录结构,则使用文件名的完整路径 grep

    【讨论】:

    • 嗨解压缩我们需要安装额外的包。有没有办法不用 unzip -l.我之前看到过这个,但是需要安装解压缩
    猜你喜欢
    • 2015-12-02
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    相关资源
    最近更新 更多