Конфигуриране на SOCKS5 прокси за Python клиента на Azure Blob
Конфигурирайте самия предоставен сеанс на 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:
passИзпълнете предвидената операция с Blob вместо pass, като използвате account_url и credential на приложението. Незадължителните SOCKS зависимости на Requests трябва вече да присъстват. socks5h делегира DNS на дестинацията към проксито. За публично достъпна крайна точка на Blob, където са разрешени публични посредници, списъкът със SOCKS5 прокси сървъри предоставя кандидати за прокси URL на сеанса.
Задайте trust_env на този сеанс, за да контролирате интеграцията на Requests с обкръжението. RequestsTransport прилага инициализацията на обкръжението, когато създава сеанс, а не когато му се подаде съществуващ. Явната стойност false не позволява на входните данни от обкръжението за прокси да заменят този маршрут.
Този избор също изключва избора на CA въз основа на обкръжението. Ако е необходимо, подайте connection_verify="/path/to/ca-bundle.pem" на RequestsTransport, с корените, изисквани за действителната услуга.
Клиентът Blob се затваря преди външния контекст на сеанса. session_owner=False оставя собствеността в този външен блок. Създадените отделно токен идентификационни данни може да имат друг HTTP транспорт; конфигурирайте ги също, ако получаването им изисква SOCKS.