Set opp ein SOCKS5-proxy for Python-klienten til Azure Blob
Set opp den medfølgjande Requests-økta sjølv, og hald deretter levetida hennar utanfor 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 staden for pass, med account_url og credential til programmet. Dei valfrie SOCKS-avhengnadene til Requests må allereie vere på plass. socks5h delegerer destinasjons-DNS til proxyen. For eit offentleg tilgjengeleg Blob-endepunkt der offentlege mellommenn er tillatne, leverer SOCKS5-proxylista kandidatar for proxy-URL-en til økta.
Set trust_env på denne økta for å styre miljøintegreringa til Requests. RequestsTransport brukar miljøinitialiseringa når han opprettar ei økt, ikkje når han får ei eksisterande. Den eksplisitte false-verdien hindrar proxy-miljøinndata i å erstatte denne ruta.
Det valet slår også av miljøbasert CA-val. Om naudsynt, oppgje connection_verify="/path/to/ca-bundle.pem" til RequestsTransport, med røtene som krevst for den faktiske tenesta.
Blob-klienten blir lukka før den ytre øktkonteksten. session_owner=False lèt eigarskapet bli hos den ytre blokka. Ein token-legitimasjon som er oppretta separat, kan ha ein annan HTTP-transport; konfigurer han også om anskaffinga krev SOCKS.