我使用下面的代码通过Artifactory的REST API上传文件。 我的问题是,当我通过GUI查看文件时,我收到以下消息:修复通过REST API上传文件时Artifactory中的校验和
客户端未发布校验和值。如果您信任上传的 工件,则可以通过单击“修复 检查和”按钮来接受实际的检查和。
如何解决上传问题,使该消息消失?
如果我通过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"
}
checksums
- 由Artifactory的
originalChecksums
计算 - 是由上传
供给的那些当我使用API的originalChecksums
组为空,我认为使上述消息。
我觉得校验SHA256。搜索下面的网页进行校验:https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API – jdweng
我已更新我的问题。 sha256是artifactory可以产生的东西。我认为这里的问题是空的'originalChecksums'。 – Niklas
请再次参阅网页。您需要发布:POST/api/checksum/sha256 -H“Content-Type:application/json”。因此,请将对象流发送给在上传流之前将返回sha256校验和的帖子。 – jdweng