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:
passpass орнына қажетті 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-ті қажет етсе, оны да конфигурациялаңыз.