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

Извршите предвиђену Blob операцију уместо pass, користећи account_url и credential апликације. Необавезне SOCKS зависности Requests-а већ морају бити присутне. socks5h делегира DNS одредишта проксију. За јавно доступну Blob крајњу тачку где су јавни посредници дозвољени, листа SOCKS5 проксија нуди кандидате за прокси URL сесије.

Поставите trust_env на овој сесији да бисте контролисали интеграцију Requests-а са окружењем. RequestsTransport примењује иницијализацију окружења када креира сесију, а не када му се преда постојећа. Експлицитна вредност false спречава да уноси прокси окружења замене ову руту.

Тај избор такође онемогућава избор CA на основу окружења. Ако је потребно, доставите connection_verify="/path/to/ca-bundle.pem" RequestsTransport-у, са коренима потребним за стварну услугу.

Blob клијент се затвара пре спољашњег контекста сесије. session_owner=False оставља власништво на том спољашњем блоку. Токен акредитив креиран одвојено може имати други HTTP транспорт; конфигуришите га такође ако његово прибављање захтева SOCKS.

Повезани чланци