MCPcopy
hub / github.com/minio/minio-go / GetRegionFromURL

Function GetRegionFromURL

pkg/s3utils/utils.go:127–205  ·  view source on GitHub ↗

GetRegionFromURL - returns a region from url host.

(endpointURL url.URL)

Source from the content-addressed store, hash-verified

125
126// GetRegionFromURL - returns a region from url host.
127func GetRegionFromURL(endpointURL url.URL) string {
128 if endpointURL == sentinelURL {
129 return ""
130 }
131
132 if endpointURL.Hostname() == "s3-external-1.amazonaws.com" {
133 return ""
134 }
135
136 // if elb's are used we cannot calculate which region it may be, just return empty.
137 if elbAmazonRegex.MatchString(endpointURL.Hostname()) || elbAmazonCnRegex.MatchString(endpointURL.Hostname()) {
138 return ""
139 }
140
141 // We check for FIPS dualstack matching first to avoid the non-greedy
142 // regex for FIPS non-dualstack matching a dualstack URL
143 parts := amazonS3HostFIPSDualStack.FindStringSubmatch(endpointURL.Hostname())
144 if len(parts) > 1 {
145 return parts[1]
146 }
147
148 parts = amazonS3HostFIPS.FindStringSubmatch(endpointURL.Hostname())
149 if len(parts) > 1 {
150 return parts[1]
151 }
152
153 parts = amazonS3HostDualStack.FindStringSubmatch(endpointURL.Hostname())
154 if len(parts) > 1 {
155 return parts[1]
156 }
157
158 parts = amazonS3HostHyphen.FindStringSubmatch(endpointURL.Hostname())
159 if len(parts) > 1 {
160 return parts[1]
161 }
162
163 parts = amazonS3ChinaHost.FindStringSubmatch(endpointURL.Hostname())
164 if len(parts) > 1 {
165 return parts[1]
166 }
167
168 parts = amazonS3ChinaHostDualStack.FindStringSubmatch(endpointURL.Hostname())
169 if len(parts) > 1 {
170 return parts[1]
171 }
172
173 parts = amazonS3HostPrivateLink.FindStringSubmatch(endpointURL.Hostname())
174 if len(parts) > 1 {
175 return parts[1]
176 }
177
178 parts = amazonS3HostExpress.FindStringSubmatch(endpointURL.Hostname())
179 if len(parts) > 1 {
180 return parts[1]
181 }
182
183 parts = amazonS3HostExpressControl.FindStringSubmatch(endpointURL.Hostname())
184 if len(parts) > 1 {

Callers 4

privateNewFunction · 0.92
getDefaultLocationFunction · 0.92
TestGetRegionFromURLFunction · 0.85
IsAmazonEndpointFunction · 0.85

Calls

no outgoing calls

Tested by 1

TestGetRegionFromURLFunction · 0.68