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

Realice 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.

Artículos relacionados