Eu tenho uma pasta no contêiner de blob que contém 112 blobs. Eu defini obter 10 blobs por página, mas estou recebendo todos os 112 blobs em uma resposta de página. Encontre a seguir um exemplo de código para reproduzir esse problema.
PagedIterable<BlobItem> pagedIterable = getBlobContainerClient().listBlobsByHierarchy("batch/");
Iterable<PagedResponse<BlobItem>> iterableByPage = pagedIterable.iterableByPage(10);
for (PagedResponse<BlobItem> pagedResponse : iterableByPage) {
Iterator<BlobItem> iterableStream = pagedResponse.getElements().iterator();
int counter = 1;
System.err.println("counter - " + counter);
while (iterableStream.hasNext()) {
BlobItem blobItem = iterableStream.next();
LOGGER.info(counter++ +" ** listBlob name -'{}' properties-'{}', tags -'{}', version -'{}', snapshot -'{}' ***",
blobItem.getName(), blobItem.getProperties(), blobItem.getTags(), blobItem.getVersionId(),
blobItem.getSnapshot());
}
}
ScreenShot
Reproduzir
Comportamento esperado
Apenas 10 blobs devem estar disponíveis em uma resposta de página.
Configuração (preencha as seguintes informações, se aplicável):
SO: janela
IDE: eclipse
Versão da biblioteca usada: azure-storage-blob-12.10.0
Olá @ abhikt48
Obrigado por postar este problema. Veremos o que está errado aqui.
Parece ser uma duplicata de # 12496. Como Gauri mencionou, vou tentar reproduzi-lo hoje ou na segunda-feira
@rickle-msft Apenas para sua informação, fiz o mesmo teste com outra abordagem e está funcionando bem. Forneci ListBlobsOptions
e configurei setMaxResultsPerPage
. Mas eu não encontrei nenhum efeito de pagedIterable.iterableByPage(10)
, parece que isso é redundante. Você poderia verificar e confirmar?
ListBlobsOptions listBlobsOptions = new ListBlobsOptions();
listBlobsOptions.setPrefix(directoryName);
listBlobsOptions.setMaxResultsPerPage(10);
PagedIterable<BlobItem> pagedIterable = getBlobContainerClient().listBlobsByHierarchy(null, listBlobsOptions , null);
Iterable<PagedResponse<BlobItem>> iterableByPage = pagedIterable.iterableByPage(10);
Você poderia me ajudar com as perguntas abaixo relacionadas com a operação listBlobsByHierarchy(null, listBlobsOptions , null)
-
listBlobsOptions.setPrefix(directoryName + "prefix");
- Não encontrei nenhuma opção para definir o diretório especificamente em ListBlobsOptions
ou BlobContainerClient.listBlobsByHierarchy(null, listBlobsOptions , null)
. Posso assumir que - directoryName pode ser fornecido por meio de listBlobsOptions.setPrefix()
apenas? Por favor confirme.listBlobsByHierarchy
. Você poderia verificar e confirmar se temos alguma opção para verificar o tamanho da listaSDK antigo - comprimento da lista
ResultSegment<ListBlobItem> listBlobResult = provider.getBlobListInDirectory(containerName, directoryName,
blobPrefix, index, continuationToken);
totalItems = listBlobResult.getLength();
Por favor, sugira sua opinião sobre as questões acima, para que eu possa prosseguir.
Cumprimentos,
Abhishek Kumar