ለAzure Blob የPython ደንበኛ SOCKS5 ፕሮክሲ ማዋቀር
የቀረበውን Requests ክፍለ ጊዜ ራሱን ያዋቅሩ፣ ከዚያም የእሱን የህይወት ጊዜ ከተመሳሰለው Blob ደንበኛ ውጭ በ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:
passየታሰበውን የBlob ክዋኔ በpass ምትክ ያከናውኑ፣ የመተግበሪያውን account_url እና credential በመጠቀም። የRequests አማራጭ የSOCKS ጥገኛዎች አስቀድመው መኖር አለባቸው። socks5h የመዳረሻ DNS ን ወደ ፕሮክሲው ያስተላልፋል። በይፋ ለሚደረስበት Blob የመጨረሻ ነጥብ ላይ የህዝብ ድርድር ሰዎች በሚፈቀዱበት ጊዜ የSOCKS5 ፕሮክሲ ዝርዝር ለክፍለ ጊዜው ፕሮክሲ URL እጩዎችን ያቀርባል።
በዚህ ክፍለ ጊዜ ላይ trust_env ን ያዘጋጁ የRequests የአካባቢ ውህደት ን ለመቆጣጠር። RequestsTransport የአካባቢ ማስጀመሪያውን የሚተገበረው ክፍለ ጊዜ ሲፈጥር ነው፣ አስቀድሞ ያለውን ክፍለ ጊዜ ሲሰጥ አይደለም። ግልጹ false እሴት የፕሮክሲ አካባቢ ግብዓቶች ይህን መንገድ እንዳይተኩ ይከላከላል።
ይህ ምርጫ በአካባቢ ላይ የተመሠረተ የCA ምርጫንም ያሰናክላል። ካስፈለገ connection_verify="/path/to/ca-bundle.pem" ን ለRequestsTransport ያቅርቡ፣ ለትክክለኛው አገልግሎት የሚያስፈልጉ ሥሮችን ጨምሮ።
የBlob ደንበኛ ከውጫዊው ክፍለ ጊዜ አውድ በፊት ይዘጋል። session_owner=False ባለቤትነቱን ከዚያ ውጫዊ ብሎክ ጋር ይተዋል። በተናጠል የተፈጠረ የቶከን ምስክር ሌላ የHTTP ማጓጓዣ ሊኖረው ይችላል፤ ግኝቱ SOCKS ከፈለገ እሱንም ያዋቅሩ።