@@ -1887,21 +1887,19 @@ def get_bucket_region(self, bucket, response):
18871887 service_response = response [1 ]
18881888 response_headers = service_response ['ResponseMetadata' ]['HTTPHeaders' ]
18891889 if 'x-amz-bucket-region' in response_headers :
1890- return response_headers ['x-amz-bucket-region' ]
1891-
1890+ region = response_headers ['x-amz-bucket-region' ]
18921891 # Next, check the error body
1893- region = service_response .get ('Error' , {}).get ('Region' , None )
1894- if region is not None :
1895- return region
1896-
1897- # Finally, HEAD the bucket. No other choice sadly.
1898- try :
1899- response = self ._client .head_bucket (Bucket = bucket )
1900- headers = response ['ResponseMetadata' ]['HTTPHeaders' ]
1901- except ClientError as e :
1902- headers = e .response ['ResponseMetadata' ]['HTTPHeaders' ]
1903-
1904- region = headers .get ('x-amz-bucket-region' , None )
1892+ elif r := service_response .get ('Error' , {}).get ('Region' , None ):
1893+ region = r
1894+ else :
1895+ # Finally, HEAD the bucket. No other choice sadly.
1896+ try :
1897+ response = self ._client .head_bucket (Bucket = bucket )
1898+ headers = response ['ResponseMetadata' ]['HTTPHeaders' ]
1899+ except ClientError as e :
1900+ headers = e .response ['ResponseMetadata' ]['HTTPHeaders' ]
1901+ region = headers .get ('x-amz-bucket-region' , None )
1902+ validate_region_name (region )
19051903 return region
19061904
19071905 def set_request_url (self , old_url , new_endpoint , ** kwargs ):
0 commit comments