J'ai un dossier dans un conteneur blob qui contient 112 blobs. J'ai défini pour obtenir 10 blobs par page, mais j'obtiens les 112 blobs dans une réponse de page. Veuillez trouver ci-dessous un exemple de code pour reproduire ce problème.
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());
}
}
Capture d'écran
Reproduire
Comportement prévisible
Seuls 10 blobs devraient être disponibles dans une réponse de page.
Configuration (veuillez compléter les informations suivantes le cas échéant) :
OS : fenêtre
IDE : éclipse
Version de la bibliothèque utilisée : azure-storage-blob-12.10.0
Salut @abhikt48
Merci d'avoir posté ce problème. Nous allons voir ce qui ne va pas ici.
Cela semble être un doublon de #12496 Comme Gauri l'a mentionné, je vais chercher à reproduire cela aujourd'hui ou lundi
@rickle-msft Juste pour info, j'ai fait les mêmes tests avec une autre approche et cela fonctionne bien. J'ai fourni ListBlobsOptions
et défini setMaxResultsPerPage
. Mais je n'ai trouvé aucun effet de pagedIterable.iterableByPage(10)
, on dirait que c'est redondant. Pourriez-vous s'il vous plaît vérifier et confirmer ?
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);
Pourriez-vous s'il vous plaît m'aider avec les requêtes ci-dessous liées à l'opération listBlobsByHierarchy(null, listBlobsOptions , null)
-
listBlobsOptions.setPrefix(directoryName + "prefix");
- Je n'ai trouvé aucune option pour définir le répertoire spécifiquement dans ListBlobsOptions
ou BlobContainerClient.listBlobsByHierarchy(null, listBlobsOptions , null)
. Puis-je supposer que - directoryName peut être fourni via listBlobsOptions.setPrefix()
uniquement ? Veuillez confirmer.listBlobsByHierarchy
. Pourriez-vous s'il vous plaît vérifier et confirmer si nous avons une option pour vérifier la taille de la listeAncien SDK - Longueur de la liste
ResultSegment<ListBlobItem> listBlobResult = provider.getBlobListInDirectory(containerName, directoryName,
blobPrefix, index, continuationToken);
totalItems = listBlobResult.getLength();
Veuillez suggérer votre opinion sur les requêtes ci-dessus, afin que je puisse continuer.
Salutations,
Abhishek Kumar