У меня есть папка в контейнере BLOB-объектов, в котором есть 112 BLOB-объектов. Я решил получить 10 больших двоичных объектов на страницу, но я получаю все 112 больших двоичных объектов за один ответ. Пожалуйста, найдите ниже образец кода, чтобы воспроизвести эту проблему.
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());
}
}
Скриншот
Воспроизводить
Ожидаемое поведение
В ответе на одну страницу должно быть доступно только 10 больших двоичных объектов.
Настройка (пожалуйста, заполните следующую информацию, если применимо):
ОС: окно
IDE: затмение
Используемая версия библиотеки: azure-storage-blob-12.10.0
Привет @ abhikt48
Спасибо, что разместили эту проблему. Мы посмотрим, что здесь не так.
Похоже, это дубликат # 12496. Как уже упоминала Гаури, я постараюсь воспроизвести это сегодня или в понедельник.
@ rickle-msft К вашему сведению, я провел такое же тестирование с другим подходом, и он работает нормально. Я предоставил пользовательский ListBlobsOptions
и установил setMaxResultsPerPage
. Но я не обнаружил никакого влияния pagedIterable.iterableByPage(10)
, похоже, это избыточно. Не могли бы вы проверить и подтвердить?
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);
Не могли бы вы помочь мне с приведенными ниже вопросами, связанными с операцией listBlobsByHierarchy(null, listBlobsOptions , null)
-
listBlobsOptions.setPrefix(directoryName + "prefix");
- Я не нашел возможности установить каталог специально в ListBlobsOptions
или BlobContainerClient.listBlobsByHierarchy(null, listBlobsOptions , null)
. Могу ли я предположить, что - имя_каталога может быть предоставлено только через listBlobsOptions.setPrefix()
? Пожалуйста подтвердите.listBlobsByHierarchy
. Не могли бы вы проверить и подтвердить, есть ли у нас возможность проверить размер спискаСтарый SDK - длина списка
ResultSegment<ListBlobItem> listBlobResult = provider.getBlobListInDirectory(containerName, directoryName,
blobPrefix, index, continuationToken);
totalItems = listBlobResult.getLength();
Выскажите свое мнение по вышеуказанным вопросам, чтобы я мог продолжить.
С уважением,
Абхишек Кумар