[英]Can't retrieve metadata for Blob in azure storage blob with java
[英]Metadata fields not received from azure java sdk on a blob
在我们的 Azure 门户中,我创建了一个存储帐户,并在其中创建了一个 blob 容器,并在其中创建了一个 blob,它只是一个简单的文本文件。 我还在此处看到的 blob 上设置了一些随机元数据字段。
在我的 java 代码中,当我通过 Azure SDK 访问 blob 时,我可以打印 blob 的内容,我可以访问 blob 属性,如 Etag,我可以访问容器元数据。 但是我无法打印上面看到的 blob 元数据字段。 具体来说,从示例页面中获取的这段代码不会打印任何内容,因为从blob.getMetadata()
方法接收到的 HashMap 是空的。
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();
}
如果我改为对 blob 进行 REST API 调用并请求元数据字段,我会将它们作为 HTTP 标头返回。 但是,如果可能,我想通过 SDK 访问它们。
在blob.getMetadata()
之前,使用blob.downloadAttributes()
此方法填充 blob 的系统属性和用户定义的元数据。 在读取或修改 Blob 的属性或元数据之前,调用此方法或其重载以从 Microsoft Azure 存储服务检索 Blob 的属性和元数据的最新值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.