我使用下面的代碼通過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