AzureにアップロードするファイルにMD5ハッシュを設定しようとしています。このエラーが発生します:
(400、'HTTP / 1.1 400リクエストで指定されたMD5値は無効です。MD5値は128ビットで、base64でエンコードされている必要があります。'、$ 7230400)
これは私がファイルのmd5を行う方法です:
function MD5(const fileName : string) : string;
var
idmd5 : TIdHashMessageDigest5;
fs : TFileStream;
begin
idmd5 := TIdHashMessageDigest5.Create;
fs := TFileStream.Create(fileName, fmOpenRead OR fmShareDenyWrite) ;
try
result := idmd5.HashStreamAsHex(fs) ;
finally
fs.Free;
idmd5.Free;
end;
end;
......
Headers.Values['Content-MD5'] := MD5(LocalFile);
さて、これはdelphi xe2の紺碧の仕様に従ってどのようになりますか?
PD:この回答Windows Azure Blob Storageサービスから返されたInvalidMd5エラーを解決するにはどうすればよいですか?.NETで解決します。
MD5 md5 = new MD5CryptoServiceProvider();
byte[] blockHash = md5.ComputeHash(buff);
string convertedHash = Convert.ToBase64String(blockHash, 0, 16);
しかし、どのようにデルファイに翻訳するのかわからない。