Я загрузил большой архив zip в контейнер BLOB Azure Storage, ~ 9GB, используя утилиту AzCopy. Теперь я хочу проверить, правильно ли это. Я могу получить значение «CONTENT-MD5» от Azure Portal для файла. Тогда мне нужно рассчитать это на моей стороне, не так ли? Существуют ли другие способы проверки действительности (кроме загрузки этого файла)? Он был архивирован с использованием утилиты 7zip, которая не имеет хеш-алгоритма для MD5.Как правильно загрузить файл базы данных Azure Storage BLOB?
ответ
«Content-MD5 «свойство загруженного блоба не поддерживается службой Blaz Service Azure для контента в режиме реального времени. Фактически, он вычисляется AzCopy во время загрузки и устанавливается на целевое blob, когда AzCopy заканчивает загрузку. Поэтому, если вы действительно хотите проверить целостность данных, вам необходимо загрузить файл с помощью функции AzCopy с параметром/CheckMD5, а затем сравнить загруженный файл с местным исходным файлом.
Однако, учитывая, что AzCopy прилагает все усилия для защиты целостности данных во время передачи, шаг проверки выше, вероятно, избыточен и настоятельно не рекомендуется, если целостность данных намного важнее производительности в рамках вашего сценария.
С помощью PowerShell можно выполнить следующую команду, чтобы получить MD5 хэш файла
Get-FileHash -Path "C:\temp\somefile.zip" -Algorithm MD5
Если вы используете C# вы можете также использовать этот фрагмент кода
using (var md5 = System.Security.Cryptography.MD5.Create())
{
using (var stream = File.OpenRead(filename))
{
return md5.ComputeHash(stream);
}
}