Azure Blob ର Python କ୍ଲାଏଣ୍ଟ ପାଇଁ SOCKS5 ପ୍ରକ୍ସି କନଫିଗର କରନ୍ତୁ
ପ୍ରଦାନ କରାଯାଇଥିବା Requests ସେସନକୁ ନିଜେ କନଫିଗର କରନ୍ତୁ, ତାପରେ session_owner=False ସହିତ ଏହାର ଜୀବନକାଳ ସିଙ୍କ୍ରୋନସ୍ 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 ଆବଶ୍ୟକ ହେଲେ ତାହାକୁ ମଧ୍ୟ କନଫିଗର କରନ୍ତୁ।