o
    [+ i                     @   sL   d Z ddlZddlZddlZddlZddlmZmZ ddlm	Z	 dd Z
dS )ul   
本文件实现了sdk cdn下载的功能

Authors: zhaoqingtao(zhaoqingtaog@baidu.com)
Date:    2025/05/23
    N)urlparse
urlunparse)configc                 C   s.  |du ri nt |}d|d< tj| |dtjdd}|jdkrF|jdd	rFt	| }|j
|jdd
d
d
d}tjt||dtjdd}td| }d}|rc|d}	d|	 ksad|	 krcd}|jr|jd}
t	|
}td}|rz|}n	|rtj}ntj}|j
|d}t|}|dd |S | S )z
    switch to cdn host
    Nz	bytes=0-1RangeTF)headersstreamtimeoutallow_redirectsi3  ZLocation/ )pathparamsqueryfragmentz/repos/([^/]+)/   ZpaddlepaddleZbaiduZSTUDIO_CDN_HOST)netlocAuthorization)copydeepcopyrequestsgetr   ZCONNECTION_TIMEOUTstatus_coder   
startswithr   _replacer   researchgrouploweris_redirectosgetenvZUNLIMITED_HOSTZLIMITED_HOSTpop)urlr   Zget_headersZheaders_rangeresponseZ
url_parsedZ	new_partsmatchZpaddle_repo	repo_nameZredirect_urlparsedZcdn_hostZnew_hostnew_url r(   g/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/aistudio_sdk/switch_downoad.py
switch_cdn   s>   


r*   )__doc__r   r   r   r   urllib.parser   r   Zaistudio_sdkr   r*   r(   r(   r(   r)   <module>   s   