如何获取 AppendBlobItem 而不在 Azure Java SDK 中创建或附加

问题描述

我需要使用 Azure Java SDK v12 获取现有的 AppendBlobItem。 但是,AppendBlobAsyncclient 提供了创建和附加 BlobItem 的方法,而不是简单的 get。

所以我列出了 BlobItems,如下所示,但 BlobItem 不能转换为 AppendBlobItem。


BlobContainerClientBuilder containerClientBuilder = new BlobContainerClientBuilder().endpoint(blobEndpoint).containerName(containerName)
                                                    .credential(new AzureSasCredential(sasCredential));
BlobContainerAsyncclient containerClient = containerClientBuilder.buildAsyncclient();
    
ListBlobsOptions listOption = new ListBlobsOptions();
listOption.setPrefix(blobPrefix);
    
// BlobItem can't cast to AppendBlobItem
BlobItem currentBlobItem =(AppendBlobItem)containerClient.listBlobs(listOption).sort(Comparator.comparing(BlobItem::getName)).blockFirst();

有没有办法在不创建或添加的情况下获得 AppendBlobItem?或将 BlobItem 转换为 AppendBlobItem。

解决方法

不,‘AppendBlobItem’和‘BlobItem’都是直接继承自‘java.lang.Object’。

他们之间实际上没有任何关系。

您可以查看上面的文档,“BlobItem”没有转换为“AppendBlobItem”的方法。

所以答案是否定的。