fun getAWSRegionFromEndpoint()

in common/src/main/kotlin/org/jetbrains/teamcity/sccache/backends.kt [118:144]


        fun getAWSRegionFromEndpoint(endpoint: String): String? {
            val value = endpoint.trim('/')
            if (!value.endsWith("amazonaws.com")) return null
            val split = LinkedList(value.split('.').asReversed())
            if (split.pop() != "com") return null
            if (split.pop() != "amazonaws") return null
            val candidate = split.pop()

            if (candidate == "s3" && split.isEmpty()) return "us-east-1" // special legacy case s3.amazonaws.com

            if (!split.pop().contains("s3")) return null

            val dashes = candidate.count { it == '-' }
            // two dashes in regular regions, three in gov regions
            if (dashes != 2 && dashes != 3) return null
            return candidate

            // s3.REGION.amazonaws.com
            // s3-fips.REGION.amazonaws.com
            // s3.dualstack.REGION.amazonaws.com
            // s3-fips.dualstack.REGION.amazonaws.com

            // ACCOUNT.s3-control.REGION.amazonaws.com
            // ACCOUNT.s3-control-fips.REGION.amazonaws.com
            // ACCOUNT.s3-control.dualstack.REGION.amazonaws.com
            // ACCOUNT.s3-control-fips.dualstack.REGION.amazonaws.com
        }