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

Eseguite l'operazione Blob prevista al posto di pass, usando l'account_url e la credential dell'applicazione. Le dipendenze SOCKS opzionali di Requests devono essere già presenti. socks5h delega il DNS di destinazione al proxy. Per un endpoint Blob raggiungibile pubblicamente dove sono ammessi intermediari pubblici, la lista di proxy SOCKS5 fornisce candidati per l'URL del proxy della sessione.

Impostate trust_env su questa sessione per controllare l'integrazione ambientale di Requests. RequestsTransport applica l'inizializzazione ambientale quando crea una sessione, non quando gliene viene fornita una esistente. Il valore false esplicito impedisce agli input ambientali del proxy di sostituire questa rotta.

Tale scelta disattiva anche la selezione della CA basata sull'ambiente. Se necessario, fornite connection_verify="/path/to/ca-bundle.pem" a RequestsTransport, con le radici richieste per il servizio effettivo.

Il client Blob viene chiuso prima del contesto esterno della sessione. session_owner=False lascia la proprietà a quel blocco esterno. Una credenziale token creata separatamente può avere un altro trasporto HTTP; configuratela anche se il suo ottenimento richiede SOCKS.

Articoli correlati