На нашем портале Azure я создал учетную запись хранения, а внутри создал контейнер больших двоичных объектов, а внутри этого большого двоичного объекта, который представляет собой простой текстовый файл. Я также установил некоторые случайные поля метаданных на BLOB-объекте, который вы видите здесь.
В своем Java-коде, когда я получаю доступ к BLOB-объекту через Azure SDK, я могу распечатать содержимое BLOB-объекта, я могу получить доступ к свойствам BLOB-объекта, таким как Etag, и получить доступ к метаданным контейнера. Но я не могу напечатать поля метаданных BLOB-объектов, показанные выше. В частности, этот код, взятый со страницы примеров, ничего не печатает, поскольку полученный HashMap из метода blob.getMetadata()
пуст.
System.out.println("Get blob metadata:");
HashMap<String, String> metadata = blob.getMetadata();
Iterator it = metadata.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry) it.next();
System.out.printf(" %s = %s%n", pair.getKey(), pair.getValue());
it.remove();
}
Если я вместо этого сделаю вызов API REST для большого двоичного объекта и запросю поля метаданных, я получу их обратно в виде заголовков HTTP. Однако я хотел бы получить к ним доступ через SDK, если это возможно.