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 aplikacijske account_url i credential. Neobavezne SOCKS ovisnosti Requests-a već moraju biti prisutne. socks5h delegira DNS odredišta proxyju. Za javno dostupnu Blob završnu točku gdje su javni posrednici dopušteni, popis SOCKS5 proxyja nudi kandidate za proxy URL sesije.

Postavite trust_env na ovoj sesiji za upravljanje integracijom Requests-a s okolinom. RequestsTransport primjenjuje inicijalizaciju okoline kada stvara sesiju, a ne kada mu se preda postojeća. Eksplicitna vrijednost false sprječava da unosi proxy okoline zamijene ovu rutu.

Taj izbor također onemogućuje odabir CA na temelju okoline. Ako je potrebno, dostavite connection_verify="/path/to/ca-bundle.pem" RequestsTransportu, s korijenima potrebnima za stvarnu uslugu.

Blob klijent zatvara se prije vanjskog konteksta sesije. session_owner=False ostavlja vlasništvo na tom vanjskom bloku. Token vjerodajnica stvorena zasebno može imati drugi HTTP transport; konfigurirajte je također ako njezino pribavljanje zahtijeva SOCKS.

Povezani članci