公開日:2015/08/09
MD5チェックサム付きでPUTでファイルをアップロードするプログラムをつくる機会があった。
VB.NETでMD5チェックサムを生成する方法をメモする。
MD5チェックサム生成関数
関数をつくってみた。
Private Function Md5CheckSum(ByVal filePath As String) As Byte()
Using checkSum As MD5 = MD5.Create(), _
stream As FileStream = File.OpenRead(filePath)
Return checkSum.ComputeHash(stream)
End Using
End Function
パラメータはファイル名。
CreateメソッドでMD5オブジェクトを生成。
対象のファイルをFileStreamに読み込む。
ComputeHashでFileStreamからハッシュ値を算出してバイト配列を返す。
MD5チェックサムを使ったファイルアップロード関数(PUT)
関数をつくってみた。
Private Function UploadFile(ByVal filePath As String,
ByVal checkSum As Byte(),
ByVal url As String) As String
Using data As New ByteArrayContent(File.ReadAllBytes(filePath)), _
hc As New HttpClient
data.Headers.ContentMD5 = checkSum
Using postTask As Task(Of HttpResponseMessage) = hc.PutAsync(url, data)
postTask.Wait()
Using res As HttpResponseMessage = postTask.Result, _
readTask As Task(Of String) = res.Content.ReadAsStringAsync
readTask.Wait()
Return readTask.Result
End Using
End Using
End Using
End Function
パラメータは3つ。
ファイル名と生成したチェックサムとURL。
ファイルからByteArrayContentを生成。
ByteArrayContent.Headers.ContentMD5にチェックサムを設定。
HttpClient.PutAsyncでPUT送信。
PUTでファイルのアップロードてできたのね。