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

pass के स्थान पर इच्छित Blob संचालन करें, ऐप्लिकेशन के account_url और credential का उपयोग करते हुए। Requests की वैकल्पिक SOCKS निर्भरताएँ पहले से मौजूद होनी चाहिए। socks5h गंतव्य DNS को प्रॉक्सी को सौंपता है। सार्वजनिक रूप से पहुँचने योग्य Blob एंडपॉइंट के लिए, जहाँ सार्वजनिक मध्यस्थों की अनुमति है, SOCKS5 प्रॉक्सी सूची सत्र के प्रॉक्सी URL के लिए उम्मीदवार प्रदान करती है।

Requests के पर्यावरण एकीकरण को नियंत्रित करने के लिए इस सत्र पर trust_env सेट करें। RequestsTransport पर्यावरण आरंभीकरण तब लागू करता है जब वह सत्र बनाता है, तब नहीं जब उसे कोई मौजूदा सत्र दिया जाता है। स्पष्ट false मान प्रॉक्सी पर्यावरण इनपुट को इस मार्ग को बदलने से रोकता है।

यह चयन पर्यावरण-आधारित CA चयन को भी अक्षम करता है। यदि आवश्यक हो, तो RequestsTransport को connection_verify="/path/to/ca-bundle.pem" दें, वास्तविक सेवा के लिए आवश्यक रूट्स के साथ।

Blob क्लाइंट बाहरी सत्र संदर्भ से पहले बंद हो जाता है। session_owner=False स्वामित्व उस बाहरी ब्लॉक के पास छोड़ता है। अलग से बनाया गया टोकन क्रेडेंशियल का अन्य HTTP ट्रांसपोर्ट हो सकता है; यदि उसकी प्राप्ति के लिए SOCKS आवश्यक हो तो उसे भी कॉन्फ़िगर करें।

संबंधित लेख