Налаштування проксі SOCKS5 для клієнта Python Azure Blob
Налаштуйте сам наданий сеанс Requests, а потім тримайте його час життя поза синхронним клієнтом Blob за допомогою 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:
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.