我正在尝试为我们的一个罐子部署一个md5文件到JFrog artifactory。该文件的扩展名为md5。文件名具有jar的名称,因此如果jar被称为file1.jar,那么它的md5将是file1.md5。我们拥有的Artifactory是版本3.0。我们知道Artifactory有它的md5校验和,当jar被移交给artifactory时会创建它。我们提供的md5是在创建jar时创建的,因此我们认为这很有价值。
但是,当我们尝试使用Bamboo的Artifactory Gradle Plugin或直接手动将文件上传到Artifactory时,我们会收到错误:
无法部署文件'filename.md5'。设置校验和的目标文件不存在神器
所以听起来好像需要为我们尝试部署的md5设置目标文件(md5是校验和的文件),但我没有在上传界面的任何地方看到这样的属性。
是否可以在Artifactory中执行此操作以及如何执行此操作?
答案 0 :(得分:4)
您可以将存储库的checksum policy配置为:
如果部署的.jar文件名是file1.jar
,则Artifactory要求.md5文件名为file1.jar.md5
。如果部署名为file1.md5
的.md5文件,Artifactory将在同一路径中找到名为file1
的文件,在您的情况下将找不到该文件,从而导致错误。
答案 1 :(得分:3)
正如您所提到的,Artifactory知道所有工件的校验和(它们不存储在文件中,但始终可以通过将.md5或.sha1添加到任何文件名来访问)。 您不能存储另一个正确的校验和,因为只有一个正确的校验和(Artifactory已经知道它存储文件)。
因此,没有理由(也没办法)将md5和sha1文件部署到Artifactory。
答案 2 :(得分:1)
虽然Artifactory不允许您上传.md5
和.sha1sum
文件,但您可以很容易地解决此限制,因为这些文件无论如何都是由Artifactory生成的。
请确保sort
要上传的文件列表,以确保您的签名文件位于文件本身之后
使用此Artifactory bash upload with checksums example以上传文件。
您将看到该限制不再存在,因为Artifactory将生成校验和,并且上传脚本将在执行上载之前验证校验和是否匹配。
这样做的另一个好处是这种上传方法要快得多,因为它不会将同一文件两次上传到服务器,也允许你多次运行它而没有问题。