Configurar un proxy SOCKS5 para el cliente Python de Azure Blob
Configure la propia sesión de Requests suministrada y después mantenga su vida útil fuera del cliente Blob síncrono con 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:
passRealice la operación de Blob prevista en lugar de pass, usando el account_url y la credential de la aplicación. Las dependencias SOCKS opcionales de Requests ya deben estar presentes. socks5h delega el DNS de destino al proxy. Para un punto de conexión de Blob accesible públicamente donde se permiten intermediarios públicos, la lista de proxies SOCKS5 ofrece candidatos para la URL de proxy de la sesión.
Establezca trust_env en esta sesión para controlar la integración de Requests con el entorno. RequestsTransport aplica su inicialización de entorno cuando crea una sesión, no cuando se le entrega una existente. El valor false explícito impide que las entradas del entorno de proxy sustituyan esta ruta.
Esa elección también desactiva la selección de CA basada en el entorno. Si es necesario, proporcione connection_verify="/path/to/ca-bundle.pem" a RequestsTransport, con las raíces requeridas para el servicio real.
El cliente Blob se cierra antes del contexto de sesión externo. session_owner=False deja la propiedad en ese bloque externo. Una credencial de token creada por separado puede tener otro transporte HTTP; configúrela también si su obtención necesita SOCKS.