Jenkins-从Artifactory下载和计算得出的MD5校验和与原始文件不同

时间:2019-02-14 08:54:35

标签: jenkins jenkins-pipeline artifactory

我正在Jenkins上进行开发,其中一个步骤是从Artifactory下载工件。它工作正常,但是对于一个工件,我收到了Calculated MD5 cheksum与原始错误不同。我seen a question没有关于这个问题的真实答案。

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

我的舞台:

    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会发出警告:有效载荷数据结束后还有一些数据

1 个答案:

答案 0 :(得分:0)

其他测试表明,尽管Artifactory服务器配置正确,但Artifactory下载插件破坏了100MB以上的下载。造成这种损坏的原因,或者它是否是插件的错误,尚未确定。

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

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

该插件似乎并不为上传100MB以上的内容而苦苦挣扎,并且可以使用Artifactory插件来工作。