# #php #google-cloud-storage #token
Вопрос:
У меня есть корзина, которая содержит более 1300 объектов с определенным префиксом. Я хотел бы пролистать их, ради аргументации, 10 за один раз. Как только я получу доступ к ведру, я использую это:
$pageToken = NULL; $mls_id = 'AK-AKMLS'; $parameters = [ 'prefix' =gt; $mls_id . '/', 'resultLimit' =gt; 10, 'fields' =gt; 'items,nextPageToken', 'pageToken' =gt; $pageToken, ]; do { try { if ($pageToken) { $parameters['pageToken'] = $pageToken; } $object_list = $bucket-gt;objects($parameters); $this-gt;allItems( $object_list ); $pageToken = $object_list-gt;nextResultToken(); } catch (Exception $e) { print "An error occurred: " . $e-gt;getMessage(); $pageToken = NULL; } } while ($pageToken);
У меня здесь есть пара проблем:
- Поскольку код написан выше, он возвращает только первые 10 объектов, но никогда не существует маркера страницы (nextPageToken, nextResultToken() ). Если я удалю значение resultLimit, я получу все объекты и получу маркер результата, но только для первых 1000 объектов.
- Если я добавлю максимальное значение 50, я получу все объекты, но теперь первые 1350 объектов имеют маркер результата, но не все остальные.
Я просто не вижу здесь никакой утилиты (или, честно говоря, определенной функциональности). Что я упускаю?