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

Izvedite predvideno operacijo Blob namesto pass z uporabo account_url in credential aplikacije. Izbirne odvisnosti SOCKS za Requests morajo biti že prisotne. socks5h delegira DNS cilja proxyju. Za javno dostopno končno točko Blob, kjer so dovoljeni javni posredniki, seznam proxyjev SOCKS5 ponuja kandidate za proxy URL seje.

Nastavite trust_env v tej seji za nadzor integracije Requests z okoljem. RequestsTransport uporabi inicializacijo okolja, ko ustvari sejo, ne ko mu je dana obstoječa. Eksplicitna vrednost false prepreči, da bi vnosi proxy okolja zamenjali to pot.

Ta izbira tudi onemogoči izbiro CA na podlagi okolja. Po potrebi posredujte connection_verify="/path/to/ca-bundle.pem" v RequestsTransport s koreninami, potrebnimi za dejansko storitev.

Odjemalec Blob se zapre pred zunanjim kontekstom seje. session_owner=False pusti lastništvo pri tem zunanjem bloku. Ločeno ustvarjena žetonska poverilnica ima lahko drug transport HTTP; konfigurirajte jo tudi, če njena pridobitev potrebuje SOCKS.

Sorodni članki