Konfigurisanje SOCKS5 proksija za Azure Blob Python klijent
Konfigurišite samu dostavljenu Requests sesiju, a zatim zadržite njen životni vek izvan sinhronog Blob klijenta uz 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:
passIzvršite predviđenu Blob operaciju umesto pass, koristeći aplikacijine account_url i credential. Neobavezne SOCKS zavisnosti Requests-a već moraju biti prisutne. socks5h delegira DNS odredišta proksiju. Za javno dostupnu Blob krajnju tačku gde su javni posrednici dozvoljeni, lista SOCKS5 proksija nudi kandidate za proksi URL sesije.
Postavite trust_env na ovoj sesiji da biste kontrolisali integraciju Requests-a sa okruženjem. RequestsTransport primenjuje inicijalizaciju okruženja kada kreira sesiju, a ne kada mu se preda postojeća. Eksplicitna vrednost false sprečava da unosi proksi okruženja zamene ovu rutu.
Taj izbor takođe onemogućava izbor CA na osnovu okruženja. Ako je potrebno, dostavite connection_verify="/path/to/ca-bundle.pem" RequestsTransport-u, sa korenima potrebnim za stvarnu uslugu.
Blob klijent se zatvara pre spoljnog konteksta sesije. session_owner=False ostavlja vlasništvo na tom spoljnom bloku. Token akreditiv kreiran odvojeno može imati drugi HTTP transport; konfigurišite ga takođe ako njegovo pribavljanje zahteva SOCKS.