Een SOCKS5-proxy configureren voor de Python-client van Azure Blob
Configureer de geleverde Requests-sessie zelf en houd de levensduur ervan buiten de synchrone Blob-client met 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:
passVoer de bedoelde Blob-bewerking uit in plaats van pass, met de account_url en credential van de toepassing. De optionele SOCKS-afhankelijkheden van Requests moeten al aanwezig zijn. socks5h delegeert de DNS van de bestemming naar de proxy. Voor een openbaar bereikbaar Blob-eindpunt waar openbare tussenpersonen zijn toegestaan, levert de SOCKS5-proxylijst kandidaten voor de proxy-URL van de sessie.
Stel trust_env in op deze sessie om de omgevingsintegratie van Requests te beheren. RequestsTransport past zijn omgevingsinitialisatie toe wanneer het een sessie aanmaakt, niet wanneer het een bestaande krijgt. De expliciete waarde false voorkomt dat proxy-omgevingsinvoer deze route vervangt.
Die keuze schakelt ook CA-selectie op basis van de omgeving uit. Geef indien nodig connection_verify="/path/to/ca-bundle.pem" door aan RequestsTransport, met de roots die voor de daadwerkelijke service nodig zijn.
De Blob-client wordt gesloten vóór de buitenste sessiecontext. session_owner=False laat het eigendom bij dat buitenste blok. Een afzonderlijk aangemaakt tokenreferentie kan een ander HTTP-transport hebben; configureer dat ook als de verwerving SOCKS vereist.