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

Utfør den tiltenkte Blob-operasjonen i stedet for pass, med applikasjonens account_url og credential. Requests' valgfrie SOCKS-avhengigheter må allerede være på plass. socks5h delegerer destinasjons-DNS til proxyen. For et offentlig tilgjengelig Blob-endepunkt der offentlige mellommenn er tillatt, leverer SOCKS5-proxylisten kandidater for øktens proxy-URL.

Sett trust_env på denne økten for å kontrollere Requests' miljøintegrasjon. RequestsTransport bruker miljøinitialiseringen når den oppretter en økt, ikke når den får en eksisterende. Den eksplisitte false-verdien hindrer at proxy-miljøinndata erstatter denne ruten.

Det valget deaktiverer også miljøbasert CA-valg. Om nødvendig, oppgi connection_verify="/path/to/ca-bundle.pem" til RequestsTransport, med røttene som kreves for den faktiske tjenesten.

Blob-klienten lukkes før den ytre øktkonteksten. session_owner=False lar eierskapet bli hos den ytre blokken. En token-legitimasjon som er opprettet separat, kan ha en annen HTTP-transport; konfigurer den også hvis anskaffelsen krever SOCKS.

Relaterte artikler