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 o'rniga mo'ljallangan Blob amalini bajaring, ilovaning account_url va credential qiymatlaridan foydalanib. Requests ning ixtiyoriy SOCKS bog'liqliklari allaqachon mavjud bo'lishi kerak. socks5h maqsad DNS ni proksiga topshiradi. Ommaviy ravishda ochiq Blob oxirgi nuqtasi uchun, ommaviy vositachilarga ruxsat berilgan joyda, SOCKS5 proksi ro'yxati sessiyaning proksi URL i uchun nomzodlar beradi.

Requests ning muhit integratsiyasini boshqarish uchun ushbu sessiyada trust_env ni o'rnating. RequestsTransport muhitni ishga tushirishni sessiya yaratganda qo'llaydi, mavjud sessiya berilganda emas. Aniq false qiymati proksi muhiti kiritmalarining bu marshrutni almashtirishiga yo'l qo'ymaydi.

Bu tanlov muhitga asoslangan CA tanlashni ham o'chiradi. Agar kerak bo'lsa, haqiqiy xizmat uchun zarur ildizlar bilan birga connection_verify="/path/to/ca-bundle.pem" ni RequestsTransport ga bering.

Blob mijozi tashqi sessiya kontekstidan oldin yopiladi. session_owner=False egalikni o'sha tashqi blokda qoldiradi. Alohida yaratilgan token guvohnomasi boshqa HTTP transportga ega bo'lishi mumkin; agar uni olish SOCKS ni talab qilsa, uni ham sozlang.

O'xshash maqolalar