Skip to content

Commit 64e232c

Browse files
authored
Fix iterating over every entry (fsspec#697)
1 parent d97099a commit 64e232c

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

gcsfs/core.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -770,14 +770,15 @@ async def _sequential_list_objects_helper(
770770
prefix,
771771
versions,
772772
max_results,
773+
items_per_call=1000,
773774
):
774775
"""
775776
Sequential list objects within the start and end offset range.
776777
"""
777-
778+
max_results = max_results if max_results else 10_000_000
778779
prefixes = []
779780
items = []
780-
781+
num_items = min(items_per_call, max_results, 1000)
781782
page = await self._call(
782783
"GET",
783784
"b/{}/o",
@@ -786,7 +787,7 @@ async def _sequential_list_objects_helper(
786787
prefix=prefix,
787788
startOffset=start_offset,
788789
endOffset=end_offset,
789-
maxResults=max_results,
790+
maxResults=num_items,
790791
json_out=True,
791792
versions="true" if versions else None,
792793
)
@@ -795,7 +796,8 @@ async def _sequential_list_objects_helper(
795796
items.extend(page.get("items", []))
796797
next_page_token = page.get("nextPageToken", None)
797798

798-
while next_page_token is not None:
799+
while len(items) < max_results and next_page_token is not None:
800+
num_items = min(items_per_call, max_results - len(items), 1000)
799801
page = await self._call(
800802
"GET",
801803
"b/{}/o",
@@ -804,7 +806,7 @@ async def _sequential_list_objects_helper(
804806
prefix=prefix,
805807
startOffset=start_offset,
806808
endOffset=end_offset,
807-
maxResults=max_results,
809+
maxResults=num_items,
808810
pageToken=next_page_token,
809811
json_out=True,
810812
versions="true" if versions else None,

0 commit comments

Comments
 (0)