我想使用 azure java sdk 版本 12.0.6 列出容器中的 blob。为了获得良好的性能,我使用 BlobContainerAsyncClient
类的异步方法。但我无法列出类中的 blob,并且没有收到任何错误。
我的代码
ListBlobsOptions options = new ListBlobsOptions()
.setDetails(new BlobListDetails()
.setRetrieveDeletedBlobs(true)
.setRetrieveSnapshots(true));
client.listBlobs(options).subscribe(blob ->
System.out.printf("Name: %s, Directory? %b, Deleted? %b, Snapshot ID: %s%n",
blob.getName(),
blob.isPrefix(),
blob.isDeleted(),
blob.getSnapshot()));
最佳答案
关于该问题,请引用以下代码
ListBlobsOptions options = new ListBlobsOptions()
.setDetails(new BlobListDetails()
.setRetrieveDeletedBlobs(true)
.setRetrieveSnapshots(true));
lient.listBlobs(options).doOnNext(blob ->
System.out.printf("Name: %s, Directory? %b, Deleted? %b, Snapshot ID: %s%n",
blob.getName(),
blob.isPrefix(),
blob.isDeleted(),
blob.getSnapshot()))
.blockLast();
此外,不能同时调用 subscribe()
和 block()
。当您调用 subscribe()
时,您会返回一个 Disposable
,它允许您取消异步操作,但您不能阻止该对象。如果您想确保有问题的方法 block ,您只需在操作上调用 block()
(具有 block()
方法的类型是 Mono
或者可能是 Flux
)。
关于azure - 无法使用 BlobContainerAsyncClient 列出 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61690565/