import requests
from azure.core.pipeline.transport import RequestsTransport
from azure.storage.blob import BlobServiceClient

with requests.Session() as session:
    session.trust_env = False
    session.proxies["https"] = "socks5h://proxy.example:1080"
    transport = RequestsTransport(session=session, session_owner=False)
    with BlobServiceClient(
        account_url=account_url,
        credential=credential,
        transport=transport,
    ) as client:
        pass

pass орнына қажетті Blob операциясын орындаңыз, қолданбаның account_url және credential пайдаланыңыз. Requests-тің қосымша SOCKS тәуелділіктері әлдеқашан орнатылған болуы керек. socks5h мақсатты DNS-ті проксиге тапсырады. Жалпыға қолжетімді Blob соңғы нүктесі үшін, онда жалпы делдалдарға рұқсат етілсе, SOCKS5 проксилер тізімі сессияның прокси URL-іне кандидаттар ұсынады.

Requests-тің ортамен интеграциясын басқару үшін осы сессияда trust_env орнатыңыз. RequestsTransport ортаны инициализациялауды сессия жасаған кезде қолданады, дайын сессия берілгенде емес. Айқын false мәні прокси ортасының кірістерінің бұл маршрутты ауыстыруына жол бермейді.

Бұл таңдау сонымен қатар ортаға негізделген CA таңдауын өшіреді. Қажет болса, нақты қызмет үшін қажетті түбірлермен бірге RequestsTransport-қа connection_verify="/path/to/ca-bundle.pem" беріңіз.

Blob клиенті сыртқы сессия контекстіне дейін жабылады. session_owner=False меншікті сол сыртқы блокта қалдырады. Бөлек жасалған токен тіркелгі деректерінің басқа HTTP тасымалы болуы мүмкін; егер оны алу SOCKS-ті қажет етсе, оны да конфигурациялаңыз.

Қатысты мақалалар