Azure 无法使用BlobContainerAsyncClient列出Blob
我想使用azure java sdk版本12.0.6列出容器中的blob。为了获得良好的性能,我对类Azure 无法使用BlobContainerAsyncClient列出Blob,azure,azure-storage,azure-storage-blobs,Azure,Azure Storage,Azure Storage Blobs,我想使用azure java sdk版本12.0.6列出容器中的blob。为了获得良好的性能,我对类BlobContainerAsyncClient使用了异步方法。但是我不能在类中列出blob,并且我没有得到任何错误 我的代码 ListBlobsOptions options = new ListBlobsOptions() .setDetails(new BlobListDetails() .setRetrieveDeletedBlobs
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()));
你应该尝试两件事:
线程睡眠(5000)
呼叫.subscribe()
调用替换为.block()
调用,实质上将请求转换回同步调用你应该尝试两件事:
线程睡眠(5000)
呼叫.subscribe()
调用替换为.block()
调用,实质上将请求转换回同步调用关于该问题,请参考以下代码
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()
时,您将返回一个一次性
,它允许您取消异步操作,但不能阻止此对象。如果要确保有问题的方法阻塞,只需对操作调用block()
(具有block()
方法的类型是Mono
或可能是Flux
)。关于此问题,请参考以下代码
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()
时,您将返回一个一次性
,它允许您取消异步操作,但不能阻止此对象。如果要确保有问题的方法是块,只需对操作调用block()
(具有block()
方法的类型是Mono
或可能是Flux
).我不能在subscribe
方法之后添加block
方法。我不能在subscribe
方法之后添加block
方法。