Jenkins - 从 Artifactory 下载并计算出的 MD5 校验和与原始版本不同

Jenkins - Downloading from Artifactory and Calculated MD5 checksum is different from original

我正在 Jenkins 上开发一个管道,其中一个步骤是从 Artifactory 下载一个工件。它工作正常,但对于一个工件,我收到一个 Calculated MD5 cheksum is different from original 错误。我 seen a question 对该主题没有真正的答案。

重要的事情如下:Jenkins 确实下载了 artifact,但是 zip 文件比 Artifactory 上的大 70MB。如果我使用 link 手动下载它,它会在日志中回显,我会得到正确的文件。

我的舞台:

    stage("Download Artifact"){
    def server = Artifactory.server 'MYARTIFACTORYSERVER'

    def downloadSpec = """{
        "files": [
            {
                "pattern": "${sourcerepository}/${artifactpath}/${artifactname}/${artifactversion}${versionsuffix}/*${artifactidentifier}.zip",
                "target": "artifact-to-sign/"
            }
        ]
    }"""
    
    server.download(downloadSpec)
}

我的日志:

Downloading artifacts using pattern: path/to/artifact/*.zip
Beginning to resolve Build Info published dependencies.
Downloading 'http://URL/artifactory/path/to/artifact/OBFUSCATED.zip'...
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
java.io.IOException: Calculated MD5 checksum is different from original, Original: 'CHECKSUM1' Calculated: 'CHECKSUM2'

关于为什么文件大小不同的任何线索? zip 文件的内容似乎大小相同。解压后内容校验和Artifactory一致

当尝试解压时,7zip 给出警告:负载数据结束后有一些数据

附加测试表明,尽管 Artifactory 服务器配置正确,但 Artifactory 下载插件会损坏超过 100MB 的下载。这种损坏背后的原因,或者是否是插件的错误,尚未确定。

有一种方法可以避免问题,首先不使用 Artifactory 下载工件。我使用 curl 来做到这一点。

curl http://URL/artifactory/path/to/artifact/OBFUSCATED.zip --output OBFUSCATED.zip

该插件似乎不支持超过 100MB 的上传,并且它们使用 Artifactory 插件工作。