Konfiguriranje proxyja SOCKS5 za Python odjemalca Azure Blob
Konfigurirajte samo dostavljeno sejo Requests, nato pa ohranite njeno življenjsko dobo zunaj sinhronega odjemalca Blob s 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:
passIzvedite predvideno operacijo Blob namesto pass z uporabo account_url in credential aplikacije. Izbirne odvisnosti SOCKS za Requests morajo biti že prisotne. socks5h delegira DNS cilja proxyju. Za javno dostopno končno točko Blob, kjer so dovoljeni javni posredniki, seznam proxyjev SOCKS5 ponuja kandidate za proxy URL seje.
Nastavite trust_env v tej seji za nadzor integracije Requests z okoljem. RequestsTransport uporabi inicializacijo okolja, ko ustvari sejo, ne ko mu je dana obstoječa. Eksplicitna vrednost false prepreči, da bi vnosi proxy okolja zamenjali to pot.
Ta izbira tudi onemogoči izbiro CA na podlagi okolja. Po potrebi posredujte connection_verify="/path/to/ca-bundle.pem" v RequestsTransport s koreninami, potrebnimi za dejansko storitev.
Odjemalec Blob se zapre pred zunanjim kontekstom seje. session_owner=False pusti lastništvo pri tem zunanjem bloku. Ločeno ustvarjena žetonska poverilnica ima lahko drug transport HTTP; konfigurirajte jo tudi, če njena pridobitev potrebuje SOCKS.