@@ -334,6 +334,7 @@ def initiate_multipart_upload(proxy, endpoint, name, **params):
334334 root = ET .fromstring (response .content )
335335 for element in root :
336336 dict_raw_resource = _base .BaseResource .etree_to_dict (element )
337+ dict_raw_resource = Object .clear_element (dict_raw_resource , proxy )
337338 dict_resource .update (dict_raw_resource )
338339 return dict_resource ['UploadId' ]
339340
@@ -344,19 +345,32 @@ def get_parts(proxy, endpoint, requests_auth):
344345 root = ET .fromstring (response .content )
345346 for element in root :
346347 dict_raw_resource = _base .BaseResource .etree_to_dict (element )
347- if element . tag == 'Part' :
348- dict_resource . setdefault ( 'Parts' , []).\
349- append (dict_raw_resource ['Part' ])
348+ dict_raw_resource = Object . clear_element ( dict_raw_resource , proxy )
349+ if element . tag . endswith ( 'Part' ):
350+ dict_resource . setdefault ( 'Parts' , []). append (dict_raw_resource ['Part' ])
350351 continue
351352 dict_resource .update (dict_raw_resource )
352353 return dict_resource
353354
355+ @staticmethod
356+ def clear_element (dict_raw_resource , proxy ):
357+ if proxy .region_name == 'eu-ch2' :
358+ cleaned_dict = {}
359+ for full_key , value in dict_raw_resource .items ():
360+ # Strip namespace if present
361+ cleaned_key = full_key .split ('}' , 1 )[1 ] \
362+ if full_key .startswith ('{' ) else full_key
363+ cleaned_dict [cleaned_key ] = value
364+ dict_raw_resource = cleaned_dict
365+ return dict_raw_resource
366+
354367 @staticmethod
355368 def complete_multipart_upload (
356369 proxy , endpoint , upload_id , data , headers , requests_auth ):
357370 url = f'{ endpoint } ?uploadId={ upload_id } '
358371 root = ET .Element ("CompleteMultipartUpload" )
359372 for item in data :
373+ item = Object .clear_element (item , proxy )
360374 part = ET .SubElement (root , "Part" )
361375 ET .SubElement (part , 'PartNumber' ).text = item ['PartNumber' ]
362376 ET .SubElement (part , 'ETag' ).text = item ['ETag' ]
0 commit comments