Konfigurer en SOCKS5-proxy for Azure Blobs Python-klient
Konfigurer den medfølgende Requests-økten selv, og hold deretter levetiden utenfor den synkrone Blob-klienten med session_owner=False.
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:
passUtfø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.