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

Efectuați operațiunea Blob dorită în locul pass, folosind account_url și credential ale aplicației. Dependențele SOCKS opționale ale Requests trebuie să fie deja prezente. socks5h deleagă DNS-ul destinației către proxy. Pentru un endpoint Blob accesibil public unde sunt permise intermediare publice, lista de proxy SOCKS5 oferă candidați pentru URL-ul de proxy al sesiunii.

Setați trust_env pe această sesiune pentru a controla integrarea Requests cu mediul. RequestsTransport aplică inițializarea mediului când creează o sesiune, nu când i se oferă una existentă. Valoarea false explicită împiedică intrările din mediul de proxy să înlocuiască această rută.

Această alegere dezactivează și selecția CA bazată pe mediu. Dacă este necesar, furnizați connection_verify="/path/to/ca-bundle.pem" către RequestsTransport, cu rădăcinile necesare pentru serviciul real.

Clientul Blob se închide înaintea contextului de sesiune exterior. session_owner=False lasă proprietatea la acel bloc exterior. O acreditare token creată separat poate avea alt transport HTTP; configurați-o și pe aceasta dacă obținerea ei necesită SOCKS.

Articole similare