繁体   English   中英

无法使用 java 检索 azure 存储 Blob 中 Blob 的元数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM