HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //proc/thread-self/root/lib/python3.6/site-packages/S3/__pycache__/Config.cpython-36.pyc
3

�9pe�t�$@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZmZddl
mZyddlZddlZWn4ek
r�ejjd�ejj�eje�YnXyddlZWnek
r�ddljZYnXy ddlmZmZmZmZmZ Wn2ek
�r8ddlmZmZmZmZmZ YnXddl!m"Z"dd	l#m#Z#dd
l$m%Z%m&Z&m'Z'm(Z(m)Z)ye*Wne+k
�r�e,Z*YnXdd�Z-d
d�Z.dd�Z/Gdd�de0�Z1Gdd�de0�ZGdd�de0�Z2dS)�)�absolute_importN)�debug�warning�)�	EX_OSFILEa:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ImportError trying to import dateutil.parser and dateutil.tz.
Please install the python dateutil module:
$ sudo apt-get install python-dateutil
  or
$ sudo yum install python-dateutil
  or
$ pip install python-dateutil
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
)�
NoOptionError�NoSectionError�MissingSectionHeaderError�ParsingError�ConfigParser)�Progress)�
SortedDict)�s3_quote�getTreeFromXml�getDictFromTree�base_unicodise�dateRFC822toPythoncCs8t|�tkr|j�dkSt|�tkr0|dkr0dSdSdS)	zsCheck to see if a string is true, yes, on, or 1

    value may be a str, or unicode.

    Return True if it is
    �true�yes�on�1TFN)rrrr)�type�unicode�lower�bool)�value�r�/usr/lib/python3.6/Config.py�is_bool_trueMs
rcCs8t|�tkr|j�dkSt|�tkr0|dkr0dSdSdS)	ztCheck to see if a string is false, no, off, or 0

    value may be a str, or unicode.

    Return True if it is
    �false�no�off�0FTN)rr r!r")rrrr)rrrr�
is_bool_false\s
r#cCst|�pt|�S)z)Check a string value to see if it is bool)rr#)rrrr�is_boolksr$c	@sLeZdZdZgZiZdZdZdZdZ	dZ
dZdZdZ
dZdZdZejZejj�ZejZd;Zd<Zd
Zd
Zd
Ze dd�Z!d
Z"d
Z#dZ$d
Z%d
Z&dZ'd
Z(d
Z)dZ*d
Z+dZ,gZ-gZ.dZ/dZ0d
Z1d
Z2dZ3dZ4dddddddddg	Z5d
Z6d
Z7d
Z8d
Z9d=Z:d>Z;ded<d
Z<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZMd?ZNdZOd dgZPgZQgZRiZSiZTeUjV��pjd!ZWd"ZXdZYd
ZZdZ[d
Z\d#Z]d
Z^d
Z_dZ`d$ZadZbd%ZcgZdgZedZfdZggZhdZidZjdZkd
Zld
Zmd&Znd
Zod
ZpdZqdZrd
Zsd
Ztd
Zud'Zvd
ZwdZxd(Zyd
Zzd(Z{d@d)d*�Z|dAd+d,�Z}d-d.�Z~d/d0�Zd1d2�Z�d3d4�Z�d5d6�Z�d7d8�Z�d9d:�Z�dS)B�ConfigN�Tzs3.amazonaws.comz%(bucket)s.s3.amazonaws.comzsdb.amazonaws.comzcloudfront.amazonaws.com�@iF)Zignore_caserZStandardi8�unameZuidZgname�gidZatime�mtimeZctime�modeZmd5z@[sync] Remove remote S3 objects when local file has been deleted�delete_removedz}%(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sz}%(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)sZUSzbinary/octet-stream�i'�sizezUTF-8Znormali,z
index.htmlz8http://%(bucket)s.s3-website-%(location)s.amazonaws.com/r�d�cCs|jdkrtj|�|_|jS)N)�	_instance�object�__new__)�self�
configfile�
access_key�
secret_key�access_tokenrrrr3s
zConfig.__new__cCs2|�r.y|j|�Wn0tk
rDdtjks8dtjkr@|j�YnX|rZ|rZ||_||_|rj||_d|_t	|j�dkr�tj
d�p�tj
d�}tj
d�p�tj
d�}tj
d	�p�tj
d
�}|r�|s�td��t|�|_t|�|_|r�d|_t|�|_n|j
�|j�r|jdk�rtd
�|j�r.|jdk�r.td��dS)N�AWS_CREDENTIAL_FILE�AWS_PROFILEFrZAWS_ACCESS_KEYZAWS_ACCESS_KEY_IDZAWS_SECRET_KEYZAWS_SECRET_ACCESS_KEYZAWS_SESSION_TOKENZAWS_SECURITY_TOKENzRAWS_ACCESS_KEY environment variable is used but AWS_SECRET_KEY variable is missingTz�Cannot have server_side_encryption (S3 SSE) and KMS_key set (S3 KMS). KMS encryption will be used. Please set server_side_encryption to FalsezFKMS encryption requires signature v4. Please set signature_v2 to False)�read_config_file�IOError�os�environ�aws_credential_filer6r7r8�_access_token_refresh�len�getenv�
ValueErrorr�role_config�kms_key�server_side_encryptionr�signature_v2�	Exception)r4r5r6r7r8Zenv_access_keyZenv_secret_keyZenv_access_tokenrrr�__init__
s<

zConfig.__init__cCsb�yBtjjd�}|�r�dttj��}dd||d�}tjjd�}|rpt|��}|j�}WdQRXd|d	<||d
<djdd
�|j�D��}d}tjjd�dkr�tjjd�}	|	s�|j	}	d|	}t
j|dd�}
|
jdd|�|
j
�}|j�}|jdko�t|�dk�r�t|�}
t|
�}|
jdk�r*|dd}n(|
jdk�rD|dd}ntd|
j��t�jd|d �t�jd!|d"�t�jd#|d$�tt|d%��}|tjd&d'�|_tjjtjj��|_nt��nzt
j d(dd�}
i}yHd)d*i}|
jd+d,|d-�|
j
�}|j�}|jdk�r t|�}d.|i}Wnt!k
�r@|
j"�YnX|
jd/d0|d-�|
j
�}|j�}|jdk�r>t|�dk�r>|
jd/d1|j#d2�|d-�|
j
�}|jdk�r8t|j��}t$j%|�}t�jdt|d ��t�jd!t|d"��t�jd#t|d3��tt|d%��}|tjd&d'�|_tt|d4��|_nt�nt�Wnt!k
�r\�YnXdS)5zL
        Get credentials from IAM authentication and STS AssumeRole
        ZAWS_ROLE_ARNzrole-session-%sZ
AssumeRolez
2011-06-15)�ActionZVersionZRoleArnZRoleSessionNameZAWS_WEB_IDENTITY_TOKEN_FILENZAssumeRoleWithWebIdentityrJZWebIdentityToken�&cSs$g|]\}}d|t|dd�f�qS)z%s=%sT)Zunicode_output)r)�.0�k�vrrr�
<listcomp>Jsz&Config.role_config.<locals>.<listcomp>zsts.amazonaws.comZAWS_STS_REGIONAL_ENDPOINTSZregionalZ
AWS_REGIONzsts.%s.amazonaws.com�)�hostZtimeoutZPOSTz/?��rZAssumeRoleResponseZAssumeRoleResultZCredentialsZ!AssumeRoleWithWebIdentityResponseZAssumeRoleWithWebIdentityResultz.Unexpected XML message from STS server: <%s />r6ZAccessKeyIdr7ZSecretAccessKeyr8ZSessionTokenZ
Expirationr-)Zminutesz169.254.169.254z$X-aws-ec2-metadata-token-ttl-secondsZ60ZPUTz/latest/api/token)ZheaderszX-aws-ec2-metadata-tokenZGETz+/latest/meta-data/iam/security-credentials/z-/latest/meta-data/iam/security-credentials/%szutf-8�TokenZLastUpdated)&r=r>�get�int�time�open�read�join�items�bucket_location�httplibZHTTPSConnectionZrequestZgetresponseZstatusrArr�tagr<r%�
update_optionrr�datetimeZ	timedelta�_access_token_expiration�now�dateutil�tz�tzutc�_access_token_last_updateZHTTPConnectionrH�close�decode�json�loads)r4Zrole_arnZrole_session_nameZparamsZweb_identity_token_file�fZweb_identity_tokenZencoded_paramsZsts_endpointZregionZconnZrespZresp_contentZtreeZresult_dictZcredsZ
expirationZ	imds_authZimds_ttlZ
imds_token�filesrrrrD5s�

zConfig.role_configcCsj|jrftjjtjj��}|jr<||jkr<|jr<|j|kr<dSy|j�Wnt	k
rdt
d�YnXdS)NzCould not refresh role)r@r_rarbrcrdr`rerDrHr)r4rarrr�role_refresh�s

zConfig.role_refreshc s�y�tjjd��tjjd�}|r6tjj|�r6t|��ntjj��sFdSt��td��t	j
�dt|dd�d��}|j�}WdQRXyFy�j
t	j|��Wn,tk
r�d|}�j
t	j|��YnXWn8tk
�r}ztd	�t|�f��WYdd}~XnXttjjd
d��}td|�d��fdd�	}||dd�}|�rVt�jdt|��||dd�}|�rzt�jdt|��||ddd�}	|	�r�t�jdt|	��Wn`tk
�r�}
ztd|
j��WYdd}
~
Xn0tk
�r}
ztd|��WYdd}
~
XnXdS)Nz~/.aws/credentialsr9zReading AWS credentials from %s�r�encodingzUTF-8)rnz
[default]
z*Error reading aws_credential_file (%s): %sr:�defaultzUsing AWS profile '%s'Tcs�d}y�j||�}Wn�tk
r�}zf|r<td|j|j��|r�y"|}d}�j||�}td|�Wn"tk
r�}zWYdd}~XnXWYdd}~XnX|r�td||��|S)NzLCouldn't find key '%s' for the AWS Profile '%s' in the credentials file '%s'roz�Legacy configuration key '%s' used, please use the standardized config format as described here: https://aws.amazon.com/blogs/security/a-new-and-standardized-way-to-manage-credentials-in-the-aws-sdks/zWFound the configuration option '%s' for the AWS Profile '%s' in the credentials file %s)rTrr�option�sectionr)�profile�keyZ
legacy_keyZ
print_warning�result�e)r?�configrr�get_key�s*
$
z+Config.aws_credential_file.<locals>.get_keyZaws_access_key_idZAWSAccessKeyIdr6Zaws_secret_access_keyZAWSSecretKeyr7Zaws_session_tokenFr8z&Errno %d accessing credentials file %sz;Couldn't find AWS Profile '%s' in the credentials file '%s')T)r=�path�
expanduserr>rT�isfiler�PyConfigParserr�iorW�getattrrXZreadfp�StringIOr	r
rC�strr%r^r<r�errnor)r4Zcredential_file_from_env�fpZ
config_string�excrrrwZprofile_access_keyZprofile_secret_keyZprofile_access_tokenrur)r?rvrr?�s^
" 

zConfig.aws_credential_filecCsXg}xNt|�D]B}ttt|��}|jd�s|td�td�td�fkrFq|j|�qW|S)N�_�string�*T)�dirrr}r%�
startswith�append)r4ZretvalrpZoption_typerrr�option_lists
zConfig.option_listcCs�t|�}x6|j�D]*}|j|�}|dk	r0|j�}|j||�qW|jd�r\|jd|jd��|jd�r�x:|jd�jd�D]&}|jdd�\}}|j�|j|j�<qxW|jj|�dS)N�
acl_public�add_headers�,�:r)	rr�rT�stripr^�split�
extra_headers�
_parsed_filesr�)r4r5ZcprpZ_optionrsrrrrr;&s


zConfig.read_config_filecCst|�jd|�dS)Nro)�ConfigDumper�dump)r4�streamrrr�dump_config:szConfig.dump_configcCsH|dkrdSt|�jd�r4|j|tj|dd���S|dkr�yt|�}Wnhtk
r�y2ytj|}Wnt	k
r�tj
|}YnXWn tk
r�td|��YnXYnX�n�|dk�rJ|jd�s�|jd�r�d}n|jd	�s�|jd
�r�d}nd}y(|�rt|dd��|>�pt|�}Wn&t
k
�rFtd
||f��YnXn�ttt|��td�k�s|tt|�dk�r�t|��r�t|��r�d}n t|��r�d}ntd||f��n�ttt|��td�k�r�yt|�}Wn&tk
�r�td||f��YnXn<|dk�r8|jd��r |dd�}n|jd��r8|dd�}tt||�dS)N�$r�	verbosityz)Config: verbosity level '%s' is not valid�	limitraterM�K�
�m�M�rzFConfig: value of option %s must have suffix m, k, or nothing, not '%s'TFz8Config: value of option '%s' must be Yes or No, not '%s'r�z9Config: value of option '%s' must be an integer, not '%s'�	host_base�host_bucket�cloudfront_hostzhttp://�zhttps://����)r�r�r�)rr�r^r=rBrUrC�logging�_levelNames�AttributeErrorZ_nameToLevel�KeyError�endswithrHrr}r%r$rr#�setattr)r4rprZshiftrrrr^=sV
(


zConfig.update_optioniir�r�i)NNNN)NNNN)��__name__�
__module__�__qualname__r1r�Z_docr6r7r8r@r`rer�r�rEZ
simpledb_hostr�r�ZWARNINGr��sys�stdout�isattyZprogress_meterrZ
ProgressCRZprogress_classZ
send_chunkZ
recv_chunkZlist_md5Zlong_listingZhuman_readable_sizesr
r��forcerF�enableZget_continueZput_continueZ	upload_idZ
skip_existing�	recursiveZrestore_daysZrestore_priorityr�Z
acl_grantsZacl_revokesZ
proxy_hostZ
proxy_portZencryptZdry_runZadd_encoding_extsZpreserve_attrsZpreserve_attrs_listZ	keep_dirsr,Zdelete_afterZdelete_after_fetchZ
max_delete�limitZ
delay_updates�gpg_passphraseZgpg_commandZgpg_encryptZgpg_decryptZ	use_httpsZ
ca_certs_fileZssl_client_key_fileZssl_client_cert_fileZcheck_ssl_certificateZcheck_ssl_hostnamer[Zdefault_mime_typeZguess_mime_typeZuse_mime_magicZ	mime_typeZenable_multipartZmultipart_chunk_size_mbZmultipart_copy_chunk_size_mbZmultipart_max_chunksZsync_checks�exclude�includeZ
debug_excludeZ
debug_include�locale�getpreferredencodingrnZurlencoding_modeZlog_target_prefixZreduced_redundancyZ
storage_class�follow_symlinksZsocket_timeoutZinvalidate_on_cfZinvalidate_default_index_on_cfZ#invalidate_default_index_root_on_cfZ
website_indexZ
website_errorZwebsite_endpointZadditional_destinationsZ
files_fromZ
cache_filer�Zremove_headersZexpiry_daysZexpiry_dateZ
expiry_prefixZskip_destination_validationrGr�Zrequester_paysZ
stop_on_errorZcontent_dispositionZcontent_typeZstatsZuse_http_expectZsignurl_use_httpsZthrottle_maxZpublic_url_use_httpsZconnection_poolingZconnection_max_ageZlist_allow_unorderedZmax_retriesr3rIrDrlr?r�r;r�r^rrrrr%ps



+tar%c@s>eZdZgfdd�Zgfdd�Zdd�Zdd�Zdd
d�Zd	S)
rcCsi|_|j||�dS)N)�cfg�
parse_file)r4�file�sectionsrrrrI~szConfigParser.__init__cCs�td|�t|�tg�kr"|g}d}tjd�}tjd�}tjd�}tjd�}tjd�}tj|d|jd	d
�d���"}	�x|	D�]}
|j|
�s||j|
�r�q||j|
�}|r�|j�d}||kp�t	|�dk}q||j|
�}
|
o�|�r||
j
�}|j|d
��r|d
dd�|d
<|j|d|d
�|ddk�r^d|d
dd�t	|d
�d|d
dd�f}n|d
}td|d|f�q|td||
f�q|WWdQRXdS)NzConfigParser: Reading file '%s'Tz^\s*#.*z^\s*$z
^\[([^\]]+)\]z$^\s*(?P<key>\w+)\s*=\s*(?P<value>.*)z^"(.*)"\s*$rmrnzUTF-8)rnrrrrsr6r7r�z%s...%d_chars...%srP�zConfigParser: %s->%sz!Ignoring invalid line in '%s': %sr�)r6r7r�r�)
rr�re�compiler|rWrT�match�groupsrA�	groupdict�__setitem__r)r4r�r�Zin_our_sectionZ	r_commentZr_emptyZ	r_sectionZr_dataZr_quotesr��lineZ
is_sectionrqZis_data�dataZprint_valuerrrr��s<







4zConfigParser.parse_filecCs
|j|S)N)r�)r4�namerrr�__getitem__�szConfigParser.__getitem__cCs||j|<dS)N)r�)r4r�rrrrr��szConfigParser.__setitem__NcCs||jkr|j|S|S)N)r�)r4r�rorrrrT�s

zConfigParser.get)N)r�r�r�rIr�r�r�rTrrrrr}s
!rc@seZdZdd�Zdd�ZdS)r�cCs
||_dS)N)r�)r4r�rrrrI�szConfigDumper.__init__cCs�|jjd|�x�|j�D]|}t||�}|dkr�t|t�r�y2ytj|}Wntk
rhtj	|}YnXWnt
k
r�YnX|jjd||f�qWdS)Nz[%s]
r�z%s = %s
)r��writer�r}�
isinstancerUr�r�r�Z_levelToNamer�)r4rqrvrprrrrr��s

zConfigDumper.dumpN)r�r�r�rIr�rrrrr��sr�)3Z
__future__rr�r_r�r�r=r|r�rhrVrrZ	ExitCodesrZdateutil.parserrbZdateutil.tz�ImportError�stderrr��flush�exitr\Zhttp.clientZclientZconfigparserrrr	r
rr{r&rr
Z	BaseUtilsrrrrrr�	NameErrorrrr#r$r2r%r�rrrr�<module>
sX

 "
1