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

Voer de bedoelde Blob-bewerking uit in plaats van pass, met de account_url en credential van de toepassing. De optionele SOCKS-afhankelijkheden van Requests moeten al aanwezig zijn. socks5h delegeert de DNS van de bestemming naar de proxy. Voor een openbaar bereikbaar Blob-eindpunt waar openbare tussenpersonen zijn toegestaan, levert de SOCKS5-proxylijst kandidaten voor de proxy-URL van de sessie.

Stel trust_env in op deze sessie om de omgevingsintegratie van Requests te beheren. RequestsTransport past zijn omgevingsinitialisatie toe wanneer het een sessie aanmaakt, niet wanneer het een bestaande krijgt. De expliciete waarde false voorkomt dat proxy-omgevingsinvoer deze route vervangt.

Die keuze schakelt ook CA-selectie op basis van de omgeving uit. Geef indien nodig connection_verify="/path/to/ca-bundle.pem" door aan RequestsTransport, met de roots die voor de daadwerkelijke service nodig zijn.

De Blob-client wordt gesloten vóór de buitenste sessiecontext. session_owner=False laat het eigendom bij dat buitenste blok. Een afzonderlijk aangemaakt tokenreferentie kan een ander HTTP-transport hebben; configureer dat ook als de verwerving SOCKS vereist.

Gerelateerde artikelen