diff --git a/google/cloud/storage/_helpers.py b/google/cloud/storage/_helpers.py index 282d9bcfb..c02be2b45 100644 --- a/google/cloud/storage/_helpers.py +++ b/google/cloud/storage/_helpers.py @@ -546,7 +546,7 @@ def _bucket_bound_hostname_url(host, scheme=None): if url_parts.scheme and url_parts.netloc: return host - return f"{scheme}://{host}/" + return f"{scheme}://{host}" def _api_core_retry_to_resumable_media_retry(retry, num_retries=None): diff --git a/google/cloud/storage/client.py b/google/cloud/storage/client.py index e6c4f33c6..9cccf413b 100644 --- a/google/cloud/storage/client.py +++ b/google/cloud/storage/client.py @@ -1759,7 +1759,7 @@ def generate_signed_post_policy_v4( if virtual_hosted_style: url = f"https://{bucket_name}.storage.googleapis.com/" elif bucket_bound_hostname: - url = _bucket_bound_hostname_url(bucket_bound_hostname, scheme) + url = f"{_bucket_bound_hostname_url(bucket_bound_hostname, scheme)}/" else: url = f"https://storage.googleapis.com/{bucket_name}/" diff --git a/tests/unit/test__helpers.py b/tests/unit/test__helpers.py index dbe0055df..174b96152 100644 --- a/tests/unit/test__helpers.py +++ b/tests/unit/test__helpers.py @@ -675,13 +675,13 @@ def _call_fut(self, **args): return _bucket_bound_hostname_url(**args) def test_full_hostname(self): - HOST = "scheme://domain.tcl/" + HOST = "scheme://domain.tcl" self.assertEqual(self._call_fut(host=HOST), HOST) def test_hostname_and_scheme(self): HOST = "domain.tcl" SCHEME = "scheme" - EXPECTED_URL = SCHEME + "://" + HOST + "/" + EXPECTED_URL = SCHEME + "://" + HOST self.assertEqual(self._call_fut(host=HOST, scheme=SCHEME), EXPECTED_URL) diff --git a/tests/unit/test_client.py b/tests/unit/test_client.py index 6769f3020..c100d35b0 100644 --- a/tests/unit/test_client.py +++ b/tests/unit/test_client.py @@ -2572,7 +2572,7 @@ def test_get_signed_policy_v4_bucket_bound_hostname(self): bucket_bound_hostname="https://bucket.bound_hostname", credentials=_create_signing_credentials(), ) - self.assertEqual(policy["url"], "https://bucket.bound_hostname") + self.assertEqual(policy["url"], "https://bucket.bound_hostname/") def test_get_signed_policy_v4_bucket_bound_hostname_with_scheme(self): import datetime