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

Executeu l'operació de Blob prevista en lloc de pass, utilitzant l'account_url i la credential de l'aplicació. Les dependències SOCKS opcionals de Requests ja han d'estar presents. socks5h delega el DNS de destinació al proxy. Per a un punt final de Blob accessible públicament on es permeten intermediaris públics, la llista de proxys SOCKS5 ofereix candidats per a l'URL de proxy de la sessió.

Establiu trust_env en aquesta sessió per controlar la integració d'entorn de Requests. RequestsTransport aplica la seva inicialització d'entorn quan crea una sessió, no quan se li dona una d'existent. El valor fals explícit impedeix que les entrades d'entorn de proxy substitueixin aquesta ruta.

Aquesta elecció també desactiva la selecció de CA basada en l'entorn. Si cal, proporcioneu connection_verify="/path/to/ca-bundle.pem" a RequestsTransport, amb les arrels necessàries per al servei real.

El client Blob es tanca abans del context de sessió extern. session_owner=False deixa la propietat en aquest bloc extern. Una credencial de token creada per separat pot tenir un altre transport HTTP; configureu-la també si la seva obtenció necessita SOCKS.

Articles relacionats