Azure Blob Python mijozi uchun SOCKS5 proksi sozlash
Taqdim etilgan Requests sessiyasining o'zini sozlang, so'ngra uning umrini sinxron Blob mijozidan tashqarida session_owner=False bilan saqlang.
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 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.