Я пытаюсь получить хэш файла, хранящегося в хранилище BLOB-объектов Windows Azure.
Я надеюсь затем сравнить хэш с версией, сохраненной на локальном компьютере, чтобы выяснить, есть лиразница.
Следующий код получает хэш.
_CloudBlobClient = SetupCloudBlobClient();
CloudBlobContainer cbContainer = _CloudBlobClient.GetContainerReference(sContainer);
CloudBlockBlob cbBlob = cbContainer.GetBlockBlobReference(sBlob);
BlobStream stream = cbBlob.OpenRead();
StringBuilder sb = new StringBuilder();
MD5 md5 = MD5CryptoServiceProvider.Create();
byte[] hash = md5.ComputeHash(stream);
foreach (byte b in hash)
sb.Append(b.ToString("x2"));
return sb.ToString();
Проблема в том, что это работает нормально для небольших файлов, но я работаю с файлами размером более 100 МБ, и для этих файловслужба просто занимает слишком много времени и в конечном итоге истекает.
Мне интересно, если это правильный подход или есть другой способ определить, если два файла содержат одинаковые данные, которые будут работать быстрее для больших файлов.
Спасибо, Мэтт