diff --git a/samcli/lib/package/utils.py b/samcli/lib/package/utils.py index 8cfc2f3157..21607511e6 100644 --- a/samcli/lib/package/utils.py +++ b/samcli/lib/package/utils.py @@ -23,7 +23,7 @@ # https://docs.aws.amazon.com/AmazonS3/latest/dev-retired/UsingBucket.html _REGION_PATTERN = r"[a-zA-Z0-9-]+" -_DOT_AMAZONAWS_COM_PATTERN = r"\.amazonaws\.com" +_DOT_AMAZONAWS_COM_PATTERN = r"\.amazonaws\.com(\.cn)?" _S3_URL_REGEXS = [ # Path-Style (and ipv6 dualstack) # - https://s3.Region.amazonaws.com/bucket-name/key name diff --git a/tests/unit/lib/package/test_utils.py b/tests/unit/lib/package/test_utils.py index 2907d7c479..6fe6107f76 100644 --- a/tests/unit/lib/package/test_utils.py +++ b/tests/unit/lib/package/test_utils.py @@ -12,13 +12,16 @@ class TestPackageUtils(TestCase): "https://s3.us-west-2.amazonaws.com/bucket-name/some/path/object.html", "http://s3.amazonaws.com/bucket-name/some/path/object.html", "https://s3.dualstack.us-west-2.amazonaws.com/bucket-name/some/path/object.html", + "https://s3.dualstack.us-west-2.amazonaws.com.cn/bucket-name/some/path/object.html", # virual host "http://bucket-name.s3.us-west-2.amazonaws.com/some/path/object.html", "https://bucket-name.s3-us-west-2.amazonaws.com/some/path/object.html", "https://bucket-name.s3.amazonaws.com/some/path/object.html", + "https://bucket-name.s3.amazonaws.com.cn/some/path/object.html", # access point "https://access-name-123456.s3-accesspoint.us-west-2.amazonaws.com/some/path/object.html", "http://access-name-899889.s3-accesspoint.us-east-1.amazonaws.com/some/path/object.html", + "http://access-name-899889.s3-accesspoint.us-east-1.amazonaws.com.cn/some/path/object.html", # s3:// "s3://bucket-name/path/to/object", ] @@ -29,6 +32,7 @@ def test_is_s3_url(self, url): @parameterized.expand( [ # path like + "https://s3.$region.amazonaws.com.abc/bucket-name/some/path/object.html", # invalid domain "https://s3.$region.amazonaws.com/bucket-name/some/path/object.html", # invalid region "https://s3.amazonaws.com/object.html", # no bucket # virual host