我的问题是,当我通过GUI查看文件时,我得到以下消息:
ClIEnt dID not publish a checksum value. If you trust the uploaded
artifact you can accept the actual checksum by clicking the ‘Fix
Checksum’ button.
如何修复上传以使此消息消失?
如果我通过GUI上传文件,我不提供校验和值,那么为什么我在使用API时必须这样做呢?在使用API修复校验和时,我可以调用额外的函数吗?
我也看到了这个设置:https://www.jfrog.com/confluence/display/RTF20/Handling+Checksums
这可能与我的问题有关吗?
string infilePath = @"C:\temp\file.ext";string inUrl = @"domain.com/repoKey/";string username = "username";string APIKey = "APIkey";using (httpClIEnt clIEnt = new httpClIEnt()){ clIEnt.DefaultRequestheaders.Authorization = new AuthenticationheaderValue("Basic",Convert.ToBase64String(EnCoding.ASCII.GetBytes(username+":"+APIKey))); using (var stream = file.OpenRead(infilePath)) { var response = clIEnt.PutAsync(inUrl + stream.name,new StreamContent(stream)); using (httpContent content = response.Result.Content) { string data = content.ReadAsstringAsync().Result; } }}
更新
有三种类型的校验和和两组校验和组.
"checksums" : { "sha1" : "94332c090bdcdd87bd86426c224bcc7dc1c5f784","md5" : "dcada413214a5bd7164c6961863f5111","sha256" : "049c671f48e94c1ad25500f64e4879312cae70f489edc21313334b3f77b631e6"},"originalChecksums" : { "sha1" : "94332c090bdcdd87bd86426c224bcc7dc1c5f784","md5" : "dcada413214a5bd7164c6961863f5111"}
校验和 – 由Artifactory计算
originalChecksums – 是上传者提供的
当我使用API时,originalChecksums组是空的,我认为这会呈现上面的消息.
解决方法 我使用 artifactory-client-java库达到同样的问题:-(所以在digging之后,你似乎需要:
>计算客户端的校验和(sha1)
>在PUT请求中提供每个校验和作为http标头
对于您的C#示例,正确的解决方案是使用计算的校验和添加标题“X-Checksum-Sha1”.
如链接文档中所述,一个简单的卷曲示例是
curl -uadmin:password -T file.jar -H "X-Checksum-Sha1:c9a355147857198da3bdb3f24c4e90bd98a61e8b""http://localhost:8081/artifactory/libs-release-local/file.jar" -i
对于artifactory-clIEnt-java用户,简单的解决方法是添加到文档化的上传示例中:
java.io.file file = new java.io.file("fileToUpload.txt");file result = artifactory.repository("Reponame").upload("path/to/newname.txt",file).doUpload();
另一个中间呼叫:bySha1Checksum():
java.io.file file = new java.io.file("fileToUpload.txt");file result = artifactory.repository("Reponame").upload("path/to/newname.txt",file).bySha1Checksum().doUpload();总结
以上是内存溢出为你收集整理的c# – 通过REST API上传文件时修复Artifactory中的校验和全部内容,希望文章能够帮你解决c# – 通过REST API上传文件时修复Artifactory中的校验和所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)