无法使用 java 检索 Azure 存储 Blob 中 Blob 的元数据
Can't retrieve metadata for Blob in azure storage blob with java
我正在使用 java api 用于天蓝色,如此处所述 https://docs.microsoft.com/en-us/java/api/overview/azure/storage?view=azure-java-stable
在下面的代码示例中,我能够从 BlobItem 对象中检索 blob 内容,但 "metadata" 除外 returns null 尽管我已经手动将元数据添加到 blob in azure传送门。
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()));
});
我正在使用 java api 用于天蓝色,如此处所述 https://docs.microsoft.com/en-us/java/api/overview/azure/storage?view=azure-java-stable
在下面的代码示例中,我能够从 BlobItem 对象中检索 blob 内容,但 "metadata" 除外 returns null 尽管我已经手动将元数据添加到 blob in azure传送门。
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()));
});