Azure Blob యొక్క Python క్లయింట్ కోసం SOCKS5 ప్రాక్సీని కాన్ఫిగర్ చేయండి
అందించిన Requests సెషన్ను స్వయంగా కాన్ఫిగర్ చేయండి, ఆపై session_owner=False తో దాని జీవితకాలాన్ని synchronous Blob క్లయింట్ వెలుపల ఉంచండి.
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:
passpass స్థానంలో ఉద్దేశించిన Blob ఆపరేషన్ను నిర్వహించండి, అప్లికేషన్ యొక్క account_url మరియు credential ఉపయోగించి. Requests యొక్క ఐచ్ఛిక SOCKS డిపెండెన్సీలు ఇప్పటికే ఉండాలి. socks5h గమ్యస్థాన DNS ను ప్రాక్సీకి అప్పగిస్తుంది. బహిరంగంగా చేరుకోగల Blob ఎండ్పాయింట్ కోసం, బహిరంగ మధ్యవర్తులకు అనుమతి ఉన్న చోట, SOCKS5 ప్రాక్సీ జాబితా సెషన్ యొక్క ప్రాక్సీ URL కోసం అభ్యర్థులను అందిస్తుంది.
Requests యొక్క పర్యావరణ ఏకీకరణను నియంత్రించడానికి ఈ సెషన్లో trust_env సెట్ చేయండి. RequestsTransport సెషన్ను సృష్టించినప్పుడు పర్యావరణ ప్రారంభాన్ని వర్తింపజేస్తుంది, ఇప్పటికే ఉన్న సెషన్ ఇచ్చినప్పుడు కాదు. స్పష్టమైన false విలువ ప్రాక్సీ పర్యావరణ ఇన్పుట్లు ఈ మార్గాన్ని భర్తీ చేయకుండా నిరోధిస్తుంది.
ఆ ఎంపిక పర్యావరణ ఆధారిత CA ఎంపికను కూడా నిలిపివేస్తుంది. అవసరమైతే, వాస్తవ సేవకు అవసరమైన రూట్లతో connection_verify="/path/to/ca-bundle.pem" ను RequestsTransport కు అందించండి.
బాహ్య సెషన్ సందర్భానికి ముందు Blob క్లయింట్ మూసివేయబడుతుంది. session_owner=False యాజమాన్యాన్ని ఆ బాహ్య బ్లాక్ వద్ద వదిలివేస్తుంది. విడిగా సృష్టించిన టోకెన్ క్రెడెన్షియల్కు మరొక HTTP రవాణా ఉండవచ్చు; దాని సముపార్జనకు SOCKS అవసరమైతే దాన్ని కూడా కాన్ఫిగర్ చేయండి.