以下のコードを使用して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;
}
}
}
アップデート
チェックサムの3種類とチェックサム・グループの2つのセットがあります。
"checksums" : {
"sha1" : "94332c090bdcdd87bd86426c224bcc7dc1c5f784",
"md5" : "dcada413214a5bd7164c6961863f5111",
"sha256" : "049c671f48e94c1ad25500f64e4879312cae70f489edc21313334b3f77b631e6"
},
"originalChecksums" : {
"sha1" : "94332c090bdcdd87bd86426c224bcc7dc1c5f784",
"md5" : "dcada413214a5bd7164c6961863f5111"
}
checksums
originalChecksums
で計算されている - 私は上記のメッセージをレンダリングすると思う
originalChecksums
グループが空でAPIを使用する場合は、アップローダ
によって提供されるものです。
私はチェックサムはSHA256だと思います。次のチェックサムのWebページを検索してください:https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API – jdweng
私は質問を更新しました。 sha256はアーティファクトが生成できるものです。ここの問題は空の 'originalChecksum'だと思います。 – Niklas
ウェブページを再度ご覧ください。投稿する必要があります:POST/api/checksum/sha256 -H "Content-Type:application/json"ストリームをアップロードする前にsha256チェックサムを返すオブジェクトストリームを投稿に送ります。 – jdweng