Хранилище больших двоичных объектов Azure: отсутствует СОДЕРЖИМОЕ-MD5 при загрузке больших двоичных объектов с помощью CloudBlockBlob.uploadBlock Java API

#azure-storage #azure-blob-storage

#azure-хранилище #azure-blob-хранилище

Вопрос:

Я загружаю файлы в хранилище больших двоичных объектов AZURE с помощью azure-storage java sdk версии 8.6.5. Если я загружаю файл с веб-консоли, я вижу значение Content-MD5.

Но я не вижу значения CONTENT-MD5 при загрузке с использованием следующего примера кода :-

 BlobRequestOptions blobRequestOptions = new BlobRequestOptions();
blobRequestOptions.setStoreBlobContentMD5(true);  
cloudBlockBlob.uploadBlock(blockId, inputstream , length, null, blobRequestOptions, null);
 

Файл разбивается на несколько блоков и загружается в несколько параллельных потоков и, наконец, фиксирует список блоков следующим образом. Загрузка файлов работает нормально.

 cloudBlockBlob.commitBlockList(blockIds, null, blobRequestOptions, null);
 

Любые указания будут с благодарностью, спасибо!

Также есть идеи, как лучше всего программно проверить целостность файла и убедиться, что файл загружен правильно, если содержимое-MD5 недоступно. Поддерживает ли хранилище больших двоичных объектов Azure что-либо для проверки содержимого?

Ответ №1:

Если вы хотите получить CONTENT-MD5 значение после успешной загрузки файла, просто попробуйте следующий код :

 cloudBlockBlob.getProperties().getContentMD5()
 

Если вам все еще не хватает значения content-MD5, эта ссылка может быть полезной.

Комментарии:

1. Спасибо за ваш ответ. Я попробовал этот код, и я получаю нулевое значение для ContentMD5, Тогда как другие свойства, такие как size, Etag и т. Д., Имеют правильные значения.

2. @Arti, я вижу, кажется, здесь та же проблема, с которой вы столкнулись: github.com/Azure/azure-storage-java/issues/495

3. Спасибо @Stanley. Общая ссылка полезна

4. Привет, @Arti, рад узнать, что эта ссылка полезна. Я отредактировал свой ответ, пожалуйста, примите его, чтобы он мог помочь другим и закрыть этот вопрос 🙂