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

Wykonaj zamierzoną operację Blob zamiast pass, używając account_url i credential aplikacji. Opcjonalne zależności SOCKS biblioteki Requests muszą już być obecne. socks5h przekazuje DNS miejsca docelowego do proxy. Dla publicznie dostępnego punktu końcowego Blob, w którym dozwolone są publiczne pośredniki, lista serwerów proxy SOCKS5 dostarcza kandydatów do adresu URL proxy sesji.

Ustaw trust_env w tej sesji, aby kontrolować integrację Requests ze środowiskiem. RequestsTransport stosuje inicjalizację środowiska podczas tworzenia sesji, a nie gdy otrzymuje istniejącą. Jawna wartość false zapobiega zastąpieniu tej trasy przez dane wejściowe środowiska proxy.

Ten wybór wyłącza również wybór CA oparty na środowisku. W razie potrzeby przekaż connection_verify="/path/to/ca-bundle.pem" do RequestsTransport wraz z korzeniami wymaganymi dla rzeczywistej usługi.

Klient Blob jest zamykany przed zewnętrznym kontekstem sesji. session_owner=False pozostawia własność w tym zewnętrznym bloku. Poświadczenie tokenu utworzone osobno może mieć inny transport HTTP; skonfiguruj je również, jeśli jego uzyskanie wymaga SOCKS.

Powiązane artykuły