https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/s3transfer/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/s3transfer/__pycache__/crt.cpython-310.pyc
o

�y�`)V�@s�ddlZddlmZddlZddlZddlZddlmZddlm	Z	ddl
mZddlm
Z
ddlZddlmZmZmZddlmZmZmZdd	lmZmZdd
lmZmZddlmZddlm Z m!Z!dd
l"m#Z#m$Z$m%Z%ddl&m'Z'm(Z(e�)e*�Z+Gdd�d�Z,ddde'dde(ddfdd�Z-Gdd�de.�Z/Gdd�de!�Z0Gdd�de �Z1Gdd�d�Z2Gdd�de2�Z3Gd d!�d!e�Z4Gd"d#�d#�Z5Gd$d%�d%�Z6Gd&d'�d'�Z7Gd(d)�d)�Z8dS)*�N)�BytesIO)�UNSIGNED)�Config)�urlsplit)�NoCredentialsError)�S3Client�
S3RequestType�S3RequestTlsMode)�ClientBootstrap�DefaultHostResolver�EventLoopGroup)�ClientTlsContext�TlsContextOptions)�AwsCredentialsProvider�AwsCredentials)�TransferNotDoneError)�BaseTransferFuture�BaseTransferMeta)�CallArgs�OSUtils�
get_callbacks)�GB�MBc@s$eZdZdd�Zdd�Zdd�ZdS)�CRTCredentialProviderAdaptercCs||_d|_t��|_dS�N)�_botocore_credential_provider�_loaded_credentials�	threading�Lock�_lock)�self�botocore_credential_provider�r"�0/usr/lib/python3/dist-packages/s3transfer/crt.py�__init__'sz%CRTCredentialProviderAdapter.__init__cCs|����}t|j|j|j�Sr)�_get_credentials�get_frozen_credentialsr�
access_key�
secret_key�token)r �credentialsr"r"r#�__call__,s�z%CRTCredentialProviderAdapter.__call__cCsX|j�|jdur|j��}|durt��||_|jWd�S1s%wYdSr)rrr�load_credentialsr)r �loaded_credsr"r"r#r%1s
�$�z-CRTCredentialProviderAdapter._get_credentialsN)�__name__�
__module__�__qualname__r$r+r%r"r"r"r#r&sr��Tc	Cs�t|�}t|�}t||�}	d}
d}|rtjntj}|dur4t�}
|r)|
j|d�nd|
_t	|
�}|�
�}|r?t|�}t�
|�}
|dt}t|	||
||||d�S)a�
    :type region: str
    :param region: The region used for signing

    :type botocore_credential_provider:
        Optional[botocore.credentials.CredentialResolver]
    :param botocore_credential_provider: Provide credentials for CRT
        to sign the request if not set, the request will not be signed

    :type num_threads: Optional[int]
    :param num_threads: Number of worker threads generated. Default
        is the number of processors in the machine.

    :type target_throughput: Optional[int]
    :param target_throughput: Throughput target in Bytes.
        Default is 0.625 GB/s (which translates to 5 Gb/s).

    :type part_size: Optional[int]
    :param part_size: Size, in Bytes, of parts that files will be downloaded
        or uploaded in.

    :type use_ssl: boolean
    :param use_ssl: Whether or not to use SSL.  By default, SSL is used.
        Note that not all services support non-ssl connections.

    :type verify: Optional[boolean/string]
    :param verify: Whether or not to verify SSL certificates.
        By default SSL certificates are verified.  You can provide the
        following values:

        * False - do not validate SSL certificates.  SSL will still be
            used (unless use_ssl is False), but SSL certificates
            will not be verified.
        * path/to/cert/bundle.pem - A filename of the CA cert bundle to
            use. Specify this argument if you want to use a custom CA cert
            bundle instead of the default one on your system.
    N)�ca_filepathFr2)�	bootstrap�region�credential_provider�	part_size�tls_mode�tls_connection_options�throughput_target_gbps)rrr
r	�ENABLED�DISABLEDr�&override_default_trust_store_from_path�verify_peerr
�new_connection_optionsrr�new_delegaterr)r5r!�num_threads�target_throughputr7�use_ssl�verify�event_loop_group�
host_resolverr4�providerr9r8�tls_ctx_options�client_tls_option�credentails_provider_adapter�target_gbpsr"r"r#�create_s3_crt_client<sD-

�����rLc@s�eZdZddd�Zdd�Zdd�Z		ddd	�Z		dd
d�Z		ddd
�Zddd�Z	dd�Z
dd�Zdd�Zddd�Z
dd�Zdd�ZdS) �CRTTransferManagerNcCs@|durt�|_||_t||j�|_g|_t�d�|_d|_	dS)aFA transfer manager interface for Amazon S3 on CRT s3 client.

        :type crt_s3_client: awscrt.s3.S3Client
        :param crt_s3_client: The CRT s3 client, handling all the
            HTTP requests and functions under then hood

        :type crt_request_serializer: s3transfer.crt.BaseCRTRequestSerializer
        :param crt_request_serializer: Serializer, generates unsigned crt HTTP
            request.

        :type osutil: s3transfer.utils.OSUtils
        :param osutil: OSUtils object to use for os-related behavior when
            using with transfer manager.
        N�r)
r�_osutil�_crt_s3_client�S3ClientArgsCreator�_s3_args_creator�_future_coordinatorsr�	Semaphore�
_semaphore�_id_counter)r �
crt_s3_client�crt_request_serializer�osutilr"r"r#r$�s�
zCRTTransferManager.__init__cCs|Srr"�r r"r"r#�	__enter__�szCRTTransferManager.__enter__cGsd}|rd}|�|�dS)NFT��	_shutdown)r �exc_type�	exc_value�args�cancelr"r"r#�__exit__�szCRTTransferManager.__exit__cCs6|duri}|duri}t|||||d�}|�d|�S)N��bucket�key�fileobj�
extra_args�subscribers�
get_object�r�_submit_transfer)r rdrerfrgrh�callargsr"r"r#�download�s�zCRTTransferManager.downloadcCs6|duri}|duri}t|||||d�}|�d|�S)Nrc�
put_objectrj)r rfrdrergrhrlr"r"r#�upload�s�zCRTTransferManager.uploadcCs4|duri}|duri}t||||d�}|�d|�S)N)rdrergrh�
delete_objectrj)r rdrergrhrlr"r"r#�delete�s�zCRTTransferManager.deleteFcCs|�|�dSrr\�r rar"r"r#�shutdown��zCRTTransferManager.shutdowncCs |jD]
}|��s
|��qdSr)rS�donera�r �coordinatorr"r"r#�_cancel_transfers�s

��z$CRTTransferManager._cancel_transferscC�|jD]}|��qdSr)rS�resultrvr"r"r#�_finish_transfers��

�z$CRTTransferManager._finish_transferscCryr)rS�%wait_until_on_done_callbacks_completervr"r"r#�_wait_transfers_done�r|z'CRTTransferManager._wait_transfers_donecCsz|r|��z1z|��Wnty|��Ynty"YnwW|��dSW|��dSW|��dS|��wr)rxr{�KeyboardInterrupt�	Exceptionr~rrr"r"r#r]�s����zCRTTransferManager._shutdowncK�|j��dSr)rU�release�r �kwargsr"r"r#�_release_semaphore�rtz%CRTTransferManager._release_semaphorec

Cs|jg}t|jd�}t|j|�|d�}td	i|��}t|�}|�|�z$|j��|j	�
|d�}|�|j	�|||||�}	|jj
d	i|	��}
Wn&tym}z|�|d�|j	j
|d|d�}||d�WYd}~n
d}~ww|�|
�|j�|�|jd7_|S)
N)�transfer_id)�metarw�queuedTru)�after_subscribers)�error�r")r��CRTTransferCoordinatorrV�CRTTransferMeta�CRTTransferFuture�AfterDoneHandler�appendrU�acquirerR�get_crt_callback�get_make_request_argsrP�make_requestr��
set_exception�set_s3_requestrS)
r �request_type�	call_args�on_done_after_callsrw�
components�future�	afterdone�	on_queued�crt_callargs�crt_s3_request�e�on_doner"r"r#rk�s>
�

�����
z#CRTTransferManager._submit_transferr�NN�F)r.r/r0r$r[rbrmrorqrsrxr{r~r]r�rkr"r"r"r#rM�s(

�

�
�


rMc@s>eZdZdZddd�Zedd��Zedd��Zed	d
��ZdS)r�z*Holds metadata about the CRTTransferFutureNcCs||_||_i|_dSr)�_transfer_id�
_call_args�
_user_context)r r�r�r"r"r#r$s
zCRTTransferMeta.__init__cC�|jSr)r�rZr"r"r#r��zCRTTransferMeta.call_argscCr�r)r�rZr"r"r#r�r�zCRTTransferMeta.transfer_idcCr�r)r�rZr"r"r#�user_context r�zCRTTransferMeta.user_contextr�)	r.r/r0�__doc__r$�propertyr�r�r�r"r"r"r#r�s


r�c@sDeZdZddd�Zedd��Zdd�Zddd	�Zd
d�Zdd
�Z	dS)r�NcCs ||_|durt�|_||_dS)aZThe future associated to a submitted transfer request via CRT S3 client

        :type meta: s3transfer.crt.CRTTransferMeta
        :param meta: The metadata associated to the transfer future.

        :type coordinator: s3transfer.crt.CRTTransferCoordinator
        :param coordinator: The coordinator associated to the transfer future.
        N)�_metar��_coordinator)r r�rwr"r"r#r$&s	
zCRTTransferFuture.__init__cCr�r)r�rZr"r"r#r�4r�zCRTTransferFuture.metacCs
|j��Sr)r�rurZr"r"r#ru8�
zCRTTransferFuture.donecC�|j�|�dSr)r�rz�r �timeoutr"r"r#rz;�zCRTTransferFuture.resultcCr�r)r�rarZr"r"r#ra>rtzCRTTransferFuture.cancelcCs$|��std��|jj|dd�dS)z!Sets the exception on the future.z?set_exception can only be called once the transfer is complete.T)�overrideN)rurr�r�)r �	exceptionr"r"r#r�As
�zCRTTransferFuture.set_exceptionr�r)
r.r/r0r$r�r�rurzrar�r"r"r"r#r�%s


r�c@seZdZdd�ZdS)�BaseCRTRequestSerializercCstd��)alSerialize CRT HTTP requests.

        :type transfer_type: string
        :param transfer_type: the type of transfer made,
            e.g 'put_object', 'get_object', 'delete_object'

        :type future: s3transfer.crt.CRTTransferFuture

        :rtype: awscrt.http.HttpRequest
        :returns: An unsigned HTTP request to be used for the CRT S3 client
        zserialize_http_request())�NotImplementedError)r �
transfer_typer�r"r"r#�serialize_http_requestKsz/BaseCRTRequestSerializer.serialize_http_requestN)r.r/r0r�r"r"r"r#r�Jsr�c@sVeZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�ZdS)�BotocoreCRTRequestSerializerNcCsp||_|dur	i}|�||�|jdi|��|_|jjj�d|j�|jjj�d|j�|jjj�d|j	�dS)a�Serialize CRT HTTP request using botocore logic
        It also takes into account configuration from both the session
        and any keyword arguments that could be passed to
        `Session.create_client()` when serializing the request.

        :type session: botocore.session.Session

        :type client_kwargs: Optional[Dict[str, str]])
        :param client_kwargs: The kwargs for the botocore
            s3 client initialization.
        Nzrequest-created.s3.*zafter-call.s3.*zbefore-send.s3.*r")
�_session�_resolve_client_config�
create_client�_clientr��events�register�_capture_http_request�+_change_response_to_serialized_http_request�_make_fake_http_response)r �session�
client_kwargsr"r"r#r$[s
�
�
�z%BotocoreCRTRequestSerializer.__init__cCsPd}|��r
|��}d|vr|d}ttd�}|r|�|�}||d<d|d<dS)N�config)�signature_version�s3�service_name)�get_default_client_configrr�merge)r r�r��user_provided_config�
client_configr"r"r#r�ts

z3BotocoreCRTRequestSerializer._resolve_client_configc
Cs�t|j�}|j}|jrd||jf}g}|j��D]\}}t|t�r*|�||f�q|�|t|d�f�qt	j
�|�}d}|jrOt
|jd�rJ|j}nt|j�}t	j
j|j|||d�}	|	S)Nz%s?%szutf-8�seek)�method�path�headers�body_stream)r�urlr��queryr��items�
isinstance�strr��awscrt�http�HttpHeaders�body�hasattrr�HttpRequestr�)
r �aws_request�	url_parts�crt_path�headers_list�name�value�crt_headers�crt_body_stream�crt_requestr"r"r#�_crt_request_from_aws_request�s,


�z:BotocoreCRTRequestSerializer._crt_request_from_aws_requestcCsT|�|�}|j�d�durt|j�}|j�d|j�|j�d�dur(|j�d�|S)N�hostzContent-MD5)r�r��getrr��set�netloc�remove)r �botocore_http_requestr�r�r"r"r#�_convert_to_crt_http_request�s�
z9BotocoreCRTRequestSerializer._convert_to_crt_http_requestcKs||jd<dS)N�http_request)�context�r �requestr�r"r"r#r��rtz2BotocoreCRTRequestSerializer._capture_http_requestcKs|d}|��|d<dS)Nr��HTTPRequest)�prepare)r r��parsedr�r�r"r"r#r��szHBotocoreCRTRequestSerializer._change_response_to_serialized_http_requestcKstj�dditd��S)N���)�botocore�
awsrequest�AWSResponse�FakeRawResponser�r"r"r#r��s�z5BotocoreCRTRequestSerializer._make_fake_http_responsecCs&t|j|�d|j|jd�|j��dS)N)�Bucket�Keyr�r")�getattrr�rdrerg)r �
client_methodr�r"r"r#�_get_botocore_http_request�s���z7BotocoreCRTRequestSerializer._get_botocore_http_requestcCs|�||jj�}|�|�}|Sr)r�r�r�r�)r r�r�r�r�r"r"r#r��s
�
z3BotocoreCRTRequestSerializer.serialize_http_requestr)r.r/r0r$r�r�r�r�r�r�r�r�r"r"r"r#r�Zs

r�c@seZdZddd�ZdS)r��Nccs�	|�|�}|sdS|Vqr)�read)r �amt�decode_content�chunkr"r"r#�stream�s�
�zFakeRawResponse.stream)rN)r.r/r0rr"r"r"r#r��sr�c@sdeZdZdZddd�Zedd��Zdd�Zdd	d
�Zddd
�Z	dd�Z
ddd�Zdd�Zdd�Z
dS)r�z-A helper class for managing CRTTransferFutureNcCs0||_||_t��|_d|_d|_t��|_dSr)	r��_s3_requestrrr�
_exception�_crt_future�Event�_done_event)r r��
s3_requestr"r"r#r$�s
zCRTTransferCoordinator.__init__cCr�r)rrZr"r"r#r�r�z!CRTTransferCoordinator.s3_requestcCr�r)r
r�rZr"r"r#�set_done_callbacks_complete�rtz2CRTTransferCoordinator.set_done_callbacks_completecCr�r)r
�waitr�r"r"r#r}�r�z<CRTTransferCoordinator.wait_until_on_done_callbacks_completeFcCsN|j�|��r
|r||_Wd�dSWd�dS1s wYdSr)rrur)r r�r�r"r"r#r��s�"�z$CRTTransferCoordinator.set_exceptioncCs|jr
|j��dSdSr)rrarZr"r"r#ra�s�zCRTTransferCoordinator.cancelc	Csp|jr|j�z$z|j�|�Wnty|���wW|jr#d|_|j�|�dS|jr1d|_|j�|�wr)rrrzrrarr�r"r"r#rz�s���zCRTTransferCoordinator.resultcCs|jdurdS|j��S)NF)rrurZr"r"r#ru�s

zCRTTransferCoordinator.donecCs||_|jj|_dSr)r�finished_futurer)r rr"r"r#r��sz%CRTTransferCoordinator.set_s3_requestr�rr�)r.r/r0r�r$r�rrr}r�rarzrur�r"r"r"r#r��s





r�c@s(eZdZdd�Zdd�Z	ddd�ZdS)	rQcCs||_||_dSr)�_request_serializer�	_os_utils)r rX�os_utilsr"r"r#r$s
zS3ClientArgsCreator.__init__c
Cs�d}d}tt|��tj�}g}	|tjkr+|j}
|j�|
�}t||
||j�}|	�	|�n|tj
kr>|j}|j�|�}||jd<|j
�||�}
|
||||�|d|	|�|�|d�d�S)N�
ContentLengthru�progress)r��type�
recv_filepath�
send_filepathr��on_progress)r�r�upper�DEFAULT�
GET_OBJECTrfr�get_temp_filename�RenameTempFileHandlerr��
PUT_OBJECT�
get_file_sizergrr�r�)r r�r�rwr�r�rr�s3_meta_request_type�on_done_before_calls�final_filepath�file_ondone_call�data_lenr�r"r"r#r�s@�

�

��
�z)S3ClientArgsCreator.get_make_request_argsNcs����fdd�}|S)Ncsfg}�dur
|�7}|t���7}�dur|�7}|D]}�dkr)||dd�q||i|��qdS)Nrr)�bytes_transferred)r)r`r��callbacks_list�callback�r��before_subscribers�
callback_typer�r"r#�invoke_all_callbacks.s�zBS3ClientArgsCreator.get_crt_callback.<locals>.invoke_all_callbacksr")r r�r)r(r�r*r"r'r#r�+sz$S3ClientArgsCreator.get_crt_callbackr�)r.r/r0r$r�r�r"r"r"r#rQs
$�rQc@�eZdZdd�Zdd�ZdS)rcCs||_||_||_||_dSr)r��_final_filename�_temp_filenamerO)r rw�final_filename�
temp_filenamerYr"r"r#r$Bs
zRenameTempFileHandler.__init__c
Ksx|d}|r|j�|j�dSz|j�|j|j�WdSty;}z|j�|j�|j�|�WYd}~dSd}~ww)Nr�)rO�remove_filer-�rename_filer,r�r�r�)r r�r�r�r"r"r#r+Hs
���zRenameTempFileHandler.__call__N�r.r/r0r$r+r"r"r"r#rAsrc@r+)r�cCs
||_dSr)r�rvr"r"r#r$Wr�zAfterDoneHandler.__init__cKr�r)r�rr�r"r"r#r+ZrtzAfterDoneHandler.__call__Nr2r"r"r"r#r�Vsr�)9�logging�iorr�botocore.awsrequestr��botocore.sessionr�botocore.configr�botocore.compatr�botocore.exceptionsr�awscrt.httpr��	awscrt.s3rrr	�	awscrt.ior
rrr
r�awscrt.authrr�s3transfer.exceptionsr�s3transfer.futuresrr�s3transfer.utilsrrr�s3transfer.constantsrr�	getLoggerr.�loggerrrL�objectrMr�r�r�r�r�r�rQrr�r"r"r"r#�<module>sL


�O%k	5>

https://t.me/RX1948 - 2025