Konfigurer en SOCKS5-proxy til Azure Blobs Python-klient
Konfigurer den medfølgende Requests-session selv, og hold derefter dens levetid uden for den synkrone Blob-klient 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:
passUdfør den tilsigtede Blob-handling i stedet for pass ved at bruge applikationens account_url og credential. Requests' valgfrie SOCKS-afhængigheder skal allerede være til stede. socks5h delegerer destinations-DNS til proxyen. Til et offentligt tilgængeligt Blob-endepunkt, hvor offentlige mellemled er tilladt, leverer SOCKS5-proxylisten kandidater til sessionens proxy-URL.
Sæt trust_env på denne session for at styre Requests' miljøintegration. RequestsTransport anvender sin miljøinitialisering, når den opretter en session, ikke når den får en eksisterende. Den udtrykkelige false-værdi forhindrer, at proxy-miljøinput erstatter denne rute.
Det val deaktiverer også miljøbaseret CA-valg. Hvis det er nødvendigt, skal du give connection_verify="/path/to/ca-bundle.pem" til RequestsTransport med de rødder, der kræves til den faktiske tjeneste.
Blob-klienten lukkes før den ydre session-kontekst. session_owner=False lader ejerskabet blive hos den ydre blok. En token-legitimationsoplysning, der er oprettet separat, kan have en anden HTTP-transport; konfigurer den også, hvis dens erhvervelse kræver SOCKS.