Configurarea unui proxy SOCKS5 pentru clientul Python Azure Blob
Configurați sesiunea Requests furnizată în sine, apoi păstrați durata ei de viață în afara clientului Blob sincron cu 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:
passEfectuați operațiunea Blob dorită în locul pass, folosind account_url și credential ale aplicației. Dependențele SOCKS opționale ale Requests trebuie să fie deja prezente. socks5h deleagă DNS-ul destinației către proxy. Pentru un endpoint Blob accesibil public unde sunt permise intermediare publice, lista de proxy SOCKS5 oferă candidați pentru URL-ul de proxy al sesiunii.
Setați trust_env pe această sesiune pentru a controla integrarea Requests cu mediul. RequestsTransport aplică inițializarea mediului când creează o sesiune, nu când i se oferă una existentă. Valoarea false explicită împiedică intrările din mediul de proxy să înlocuiască această rută.
Această alegere dezactivează și selecția CA bazată pe mediu. Dacă este necesar, furnizați connection_verify="/path/to/ca-bundle.pem" către RequestsTransport, cu rădăcinile necesare pentru serviciul real.
Clientul Blob se închide înaintea contextului de sesiune exterior. session_owner=False lasă proprietatea la acel bloc exterior. O acreditare token creată separat poate avea alt transport HTTP; configurați-o și pe aceasta dacă obținerea ei necesită SOCKS.