Skip to content

Commit 519a5cc

Browse files
committed
feat: add predefined_acl to create_resumable_upload_session
1 parent 8d5a6c3 commit 519a5cc

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

google/cloud/storage/blob.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2861,6 +2861,7 @@ def create_resumable_upload_session(
28612861
client=None,
28622862
timeout=_DEFAULT_TIMEOUT,
28632863
checksum=None,
2864+
predefined_acl=None,
28642865
if_generation_match=None,
28652866
if_generation_not_match=None,
28662867
if_metageneration_match=None,
@@ -2942,6 +2943,9 @@ def create_resumable_upload_session(
29422943
delete the uploaded object automatically. Supported values
29432944
are "md5", "crc32c" and None. The default is None.
29442945
2946+
:type predefined_acl: str
2947+
:param predefined_acl: (Optional) Predefined access control list
2948+
29452949
:type if_generation_match: long
29462950
:param if_generation_match:
29472951
(Optional) See :ref:`using-if-generation-match`
@@ -3015,7 +3019,7 @@ def create_resumable_upload_session(
30153019
content_type,
30163020
size,
30173021
None,
3018-
predefined_acl=None,
3022+
predefined_acl=predefined_acl,
30193023
if_generation_match=if_generation_match,
30203024
if_generation_not_match=if_generation_not_match,
30213025
if_metageneration_match=if_metageneration_match,

tests/unit/test_blob.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3572,6 +3572,7 @@ def _create_resumable_upload_session_helper(
35723572
origin=None,
35733573
side_effect=None,
35743574
timeout=None,
3575+
predefined_acl=None,
35753576
if_generation_match=None,
35763577
if_generation_not_match=None,
35773578
if_metageneration_match=None,
@@ -3585,6 +3586,8 @@ def _create_resumable_upload_session_helper(
35853586

35863587
# Create mocks to be checked for doing transport.
35873588
resumable_url = "http://test.invalid?upload_id=clean-up-everybody"
3589+
if predefined_acl is not None:
3590+
resumable_url += "?" + urlencode([("predefinedAcl", predefined_acl)])
35883591
response_headers = {"location": resumable_url}
35893592
transport = self._mock_transport(http.client.OK, response_headers)
35903593
if side_effect is not None:
@@ -3611,6 +3614,7 @@ def _create_resumable_upload_session_helper(
36113614
size=size,
36123615
origin=origin,
36133616
client=client,
3617+
predefined_acl=predefined_acl,
36143618
if_generation_match=if_generation_match,
36153619
if_generation_not_match=if_generation_not_match,
36163620
if_metageneration_match=if_metageneration_match,
@@ -3672,6 +3676,9 @@ def test_create_resumable_upload_session_with_custom_timeout(self):
36723676
def test_create_resumable_upload_session_with_origin(self):
36733677
self._create_resumable_upload_session_helper(origin="http://google.com")
36743678

3679+
def test_create_resumable_upload_session_with_predefined_acl(self):
3680+
self._create_resumable_upload_session_helper(predefined_acl="private")
3681+
36753682
def test_create_resumable_upload_session_with_generation_match(self):
36763683
self._create_resumable_upload_session_helper(
36773684
if_generation_match=123456, if_metageneration_match=2

0 commit comments

Comments
 (0)