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

Izvršite predviđenu Blob operaciju umjesto pass, koristeći aplikacijine account_url i credential. Opcionalne SOCKS zavisnosti Requests-a moraju već biti prisutne. socks5h delegira DNS odredišta na proxy. Za javno dostupnu Blob krajnju tačku gdje su javni posrednici dozvoljeni, lista SOCKS5 proxyja nudi kandidate za proxy URL sesije.

Postavite trust_env na ovoj sesiji da biste kontrolisali integraciju Requests-a s okruženjem. RequestsTransport primjenjuje inicijalizaciju okruženja kada kreira sesiju, ne kada mu se preda postojeća. Eksplicitna vrijednost false sprječava da unosi proxy okruženja zamijene ovu rutu.

Taj izbor također onemogućava odabir CA na osnovu okruženja. Ako je potrebno, dostavite connection_verify="/path/to/ca-bundle.pem" RequestsTransport-u, s korijenima potrebnim za stvarnu uslugu.

Blob klijent se zatvara prije vanjskog konteksta sesije. session_owner=False ostavlja vlasništvo na tom vanjskom bloku. Token akreditiv kreiran odvojeno može imati drugi HTTP transport; konfigurirajte ga također ako njegovo pribavljanje zahtijeva SOCKS.

Povezani članci