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 برنامه استفاده کنید. وابستگی‌های اختیاری SOCKS در Requests باید از قبل موجود باشند. 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 نیاز دارد، آن را نیز پیکربندی کنید.

مقالات مرتبط