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

Execute a operação Blob pretendida em vez de pass, usando o account_url e a credential da aplicação. As dependências SOCKS opcionais do Requests já devem estar presentes. socks5h delega o DNS de destino ao proxy. Para um ponto final Blob acessível publicamente onde intermediários públicos são permitidos, a lista de proxies SOCKS5 fornece candidatos para o URL de proxy da sessão.

Defina trust_env nesta sessão para controlar a integração do Requests com o ambiente. O RequestsTransport aplica a inicialização de ambiente quando cria uma sessão, não quando recebe uma existente. O valor false explícito impede que entradas do ambiente de proxy substituam esta rota.

Essa escolha também desativa a seleção de CA baseada no ambiente. Se necessário, forneça connection_verify="/path/to/ca-bundle.pem" ao RequestsTransport, com as raízes exigidas para o serviço real.

O cliente Blob é fechado antes do contexto de sessão externo. session_owner=False deixa a propriedade nesse bloco externo. Uma credencial de token criada separadamente pode ter outro transporte HTTP; configure-a também se a obtenção dela exigir SOCKS.

Artigos relacionados