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

Utför den avsedda Blob-åtgärden i stället för pass, med applikationens account_url och credential. Requests valfria SOCKS-beroenden måste redan finnas. socks5h delegerar målets DNS till proxyn. För en offentligt nåbar Blob-slutpunkt där offentliga mellanhänder tillåts levererar SOCKS5-proxylistan kandidater för sessionens proxy-URL.

Ställ in trust_env på den här sessionen för att styra Requests miljöintegrering. RequestsTransport tillämpar sin miljöinitiering när den skapar en session, inte när den får en befintlig. Det explicita värdet false hindrar proxy-miljöindata från att ersätta den här vägen.

Det valet inaktiverar också miljöbaserat CA-val. Om det behövs, ange connection_verify="/path/to/ca-bundle.pem" till RequestsTransport, med de rötter som krävs för den faktiska tjänsten.

Blob-klienten stängs före den yttre sessionskontexten. session_owner=False lämnar ägandet hos det yttre blocket. En separat skapad token-legitimation kan ha en annan HTTP-transport; konfigurera den också om dess anskaffning kräver SOCKS.

Relaterade artiklar