我正在研究Jenkins的一个管道,其中一步是从Artifactory下载一个工件。它工作正常,但对于一个工件,我收到一个计算的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会发出警告:有效负载数据结束后有一些数据。
额外的测试表明Artifactory下载插件损坏了超过100MB的下载,尽管Artifactory服务器配置正确。这种腐败背后的原因,或者是否是插件的错误,尚未建立。
有一种方法可以避免这个问题,因为首先不使用Artifactory下载工件。我通过使用curl来做到这一点。
curl http://URL/artifactory/path/to/artifact/OBFUSCATED.zip --output OBFUSCATED.zip
该插件似乎不会为超过100MB的上传而烦恼,并且它们使用Artifactory插件。