ruạṛ
a O��f� � @ s� d dl mZ d dlmZ d dlmZ d dlmZmZ d dlm Z d dl mZmZ d dl mZ d dlmZmZmZ d d lmZmZ d dlmZ ed�ZG d d� de�ZdS )� )�absolute_import)�requests)�six)�retry�circuit_breaker)� BaseClient)�get_config_value_or_default�validate_config)�Signer)�Sentinel�#get_signer_from_authentication_type�AUTHENTICATION_TYPE_FIELD_NAME)�,back_up_body_calculate_stream_content_length�(is_content_length_calculable_by_req_util� )�object_storage_type_mapping�Missingc @ s� e Zd ZdZdd� Zdd� Zdd� Zdd � Zd d� Zdd � Z dd� Z dd� Zdd� Zdd� Z dd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Zd$d%� Zd&d'� Zd(d)� Zd*d+� Zd,d-� Zd.d/� Zd0d1� Zd2d3� Zd4d5� Zd6d7� Zd8d9� Zd:d;� Z d<d=� Z!d>d?� Z"d@dA� Z#dBdC� Z$dDdE� Z%dFdG� Z&dHdI� Z'dJdK� Z(dLdM� Z)dNdO� Z*dPdQ� Z+dRdS� Z,dTdU� Z-dVdW� Z.dXdY� Z/dZd[� Z0d\d]� Z1d^d_� Z2d`da� Z3dbdc� Z4ddde� Z5dfdg� Z6dhS )i�ObjectStorageClientaA Common set of Object Storage and Archive Storage APIs for managing buckets, objects, and related resources. For more information, see [Overview of Object Storage](/Content/Object/Concepts/objectstorageoverview.htm) and [Overview of Archive Storage](/Content/Archive/Concepts/archivestorageoverview.htm). c K s t ||�d�d� d|v r$|d }nDt|v r6t|�}n2t|d |d |d |�d�t|d�|�d�d �}d |�d�dd |�dd�|�dtj�d�}d|v r�|�d�|d<