Can';t使用java检索azure存储Blob中Blob的元数据
我正在使用JavaAPI for azure,如下所述 在下面的代码示例中,我能够从BlobItem对象检索blob内容,但“metadata”除外,它返回null,尽管我已经在azure portal中手动向blob添加了元数据Can';t使用java检索azure存储Blob中Blob的元数据,java,azure,blob,Java,Azure,Blob,我正在使用JavaAPI for azure,如下所述 在下面的代码示例中,我能够从BlobItem对象检索blob内容,但“metadata”除外,它返回null,尽管我已经在azure portal中手动向blob添加了元数据 BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(azConnectionString).buildClient(); BlobContaine
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()));
});
谢谢你的帮助
关于我认为您没有获得元数据的原因是因为您没有元数据选项 您可以尝试以下内容(未经测试的代码):
设置元数据选项解决了问题:)谢谢!
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()));
});