[英]Can't retrieve metadata for Blob in azure storage blob with java
I am using java api for azure as described here https://docs.microsoft.com/en-us/java/api/overview/azure/storage?view=azure-java-stable
在下面的代码示例中,我能够从 BlobItem object 中检索 blob 内容,但返回 null 的“元数据”除外,尽管我已手动将元数据添加到 ZCF04A02E37B774FC311A48F605C 中的 blob 中。
BlobServiceClient blobServiceClient = new
BlobServiceClientBuilder().connectionString(azConnectionString).buildClient();
BlobContainerClient blobContainerClient = blobServiceClient.getBlobContainerClient("myContainer")
ListBlobsOptions listsBlobOptions = new ListBlobsOptions();
listsBlobOptions.getDetails().getRetrieveMetadata();
blobContainerClient.listBlobs(listsBlobOptions, Duration.ofHours(1000)).forEach(blobItem -> {
log.info(blobItem.getName());
log.info(blobItem.getProperties().getETag());
log.info(String.valueOf(blobItem.getProperties().getLeaseStatus()));
log.info(String.valueOf(blobItem.getMetadata()));
});
帮助表示赞赏
问候
我相信您没有获得元数据的原因是因为您没有setting
元数据选项。
您可以尝试以下内容(未经测试的代码):
BlobServiceClient blobServiceClient = new
BlobServiceClientBuilder().connectionString(azConnectionString).buildClient();
BlobContainerClient blobContainerClient = blobServiceClient.getBlobContainerClient("myContainer")
BlobListDetails blobListDetails = (new BlobListDetails()).setRetrieveMetadata(true);//set "retrieve metadata" option to true
ListBlobOptions listBlobOptions = (new ListBlobOptions()).setDetails(blobListDetails);
blobContainerClient.listBlobs(listsBlobOptions, Duration.ofHours(1000)).forEach(blobItem -> {
log.info(blobItem.getName());
log.info(blobItem.getProperties().getETag());
log.info(String.valueOf(blobItem.getProperties().getLeaseStatus()));
log.info(String.valueOf(blobItem.getMetadata()));
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.