Skip to content

Commit c52e882

Browse files
authored
feat: support page_size in bucket.list_blobs (#1275)
1 parent 4db96c9 commit c52e882

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

google/cloud/storage/bucket.py

+7
Original file line numberDiff line numberDiff line change
@@ -1308,6 +1308,7 @@ def list_blobs(
13081308
match_glob=None,
13091309
include_folders_as_prefixes=None,
13101310
soft_deleted=None,
1311+
page_size=None,
13111312
):
13121313
"""Return an iterator used to find blobs in the bucket.
13131314
@@ -1401,6 +1402,11 @@ def list_blobs(
14011402
Note ``soft_deleted`` and ``versions`` cannot be set to True simultaneously. See:
14021403
https://cloud.google.com/storage/docs/soft-delete
14031404
1405+
:type page_size: int
1406+
:param page_size:
1407+
(Optional) Maximum number of blobs to return in each page.
1408+
Defaults to a value set by the API.
1409+
14041410
:rtype: :class:`~google.api_core.page_iterator.Iterator`
14051411
:returns: Iterator of all :class:`~google.cloud.storage.blob.Blob`
14061412
in this bucket matching the arguments.
@@ -1418,6 +1424,7 @@ def list_blobs(
14181424
versions=versions,
14191425
projection=projection,
14201426
fields=fields,
1427+
page_size=page_size,
14211428
timeout=timeout,
14221429
retry=retry,
14231430
match_glob=match_glob,

tests/unit/test_bucket.py

+6
Original file line numberDiff line numberDiff line change
@@ -1179,6 +1179,7 @@ def test_list_blobs_w_defaults(self):
11791179
expected_fields = None
11801180
expected_include_folders_as_prefixes = None
11811181
soft_deleted = None
1182+
page_size = None
11821183
client.list_blobs.assert_called_once_with(
11831184
bucket,
11841185
max_results=expected_max_results,
@@ -1196,6 +1197,7 @@ def test_list_blobs_w_defaults(self):
11961197
match_glob=expected_match_glob,
11971198
include_folders_as_prefixes=expected_include_folders_as_prefixes,
11981199
soft_deleted=soft_deleted,
1200+
page_size=page_size,
11991201
)
12001202

12011203
def test_list_blobs_w_explicit(self):
@@ -1211,6 +1213,7 @@ def test_list_blobs_w_explicit(self):
12111213
include_folders_as_prefixes = True
12121214
versions = True
12131215
soft_deleted = True
1216+
page_size = 2
12141217
projection = "full"
12151218
fields = "items/contentLanguage,nextPageToken"
12161219
bucket = self._make_one(client=None, name=name)
@@ -1236,6 +1239,7 @@ def test_list_blobs_w_explicit(self):
12361239
match_glob=match_glob,
12371240
include_folders_as_prefixes=include_folders_as_prefixes,
12381241
soft_deleted=soft_deleted,
1242+
page_size=page_size,
12391243
)
12401244

12411245
self.assertIs(iterator, other_client.list_blobs.return_value)
@@ -1253,6 +1257,7 @@ def test_list_blobs_w_explicit(self):
12531257
expected_fields = fields
12541258
expected_include_folders_as_prefixes = include_folders_as_prefixes
12551259
expected_soft_deleted = soft_deleted
1260+
expected_page_size = page_size
12561261
other_client.list_blobs.assert_called_once_with(
12571262
bucket,
12581263
max_results=expected_max_results,
@@ -1270,6 +1275,7 @@ def test_list_blobs_w_explicit(self):
12701275
match_glob=expected_match_glob,
12711276
include_folders_as_prefixes=expected_include_folders_as_prefixes,
12721277
soft_deleted=expected_soft_deleted,
1278+
page_size=expected_page_size,
12731279
)
12741280

12751281
def test_list_notifications_w_defaults(self):

0 commit comments

Comments
 (0)