【发布时间】:2022-01-05 21:09:42
【问题描述】:
通过 Java SDK (azure-spring-boot-starter-storage) 迭代 Azure 存储中的可用 blob 不适用于 maxresults 查询参数。
ListBlobsOptions listBlobsOptions= new ListBlobsOptions()
.setDetails(new BlobListDetails()
.setRetrieveDeletedBlobs(false)
.setRetrieveSnapshots(false))
.setMaxResultsPerPage(pageSize);
blobContainerClient.listBlobs(listBlobsOptions, continuationToken, Duration.ofSeconds(3));
listBlobs 方法有效并返回所有可用的BlobItems 作为PagedIterable。理想情况下,它应该在标记通过 setMaxResultsPerPage 方法获取请求中传递的 maxresults 查询参数时停止。
自动生成一个标记,并由 SDK 发送一个新请求以获取下一个结果。最后,所有可用的 Blob 都从 Azure 存储返回,而不是分页 Blob 列表。
例如SDK GET 自动创建的请求{uri=/containername?restype=container&comp=list&marker=...&maxresults=1
如何使用同步 BlobServiceClient 进行分页?
【问题讨论】:
标签: java spring-boot azure-blob-storage