Konfigurowanie serwera proxy SOCKS5 dla klienta Python usługi Azure Blob
Skonfiguruj samą dostarczoną sesję Requests, a następnie utrzymaj jej czas życia poza synchronicznym klientem Blob, używając session_owner=False.
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:
passWykonaj 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.