Konfigurasikan Proksi SOCKS5 untuk Klien Python Azure Blob
Konfigurasikan sesi Requests yang dibekalkan itu sendiri, kemudian kekalkan jangka hayatnya di luar klien Blob segerak dengan 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:
passLaksanakan operasi Blob yang dimaksudkan sebagai ganti pass, menggunakan account_url dan credential aplikasi. Kebergantungan SOCKS pilihan Requests mesti sudah ada. socks5h mewakilkan DNS destinasi kepada proksi. Untuk titik akhir Blob yang boleh dicapai secara awam di mana perantara awam dibenarkan, senarai proksi SOCKS5 membekalkan calon untuk URL proksi sesi itu.
Tetapkan trust_env pada sesi ini untuk mengawal integrasi persekitaran Requests. RequestsTransport menggunakan permulaan persekitarannya apabila ia mencipta sesi, bukan apabila diberikan sesi sedia ada. Nilai false yang eksplisit menghalang input persekitaran proksi daripada menggantikan laluan ini.
Pilihan itu juga menyahdayakan pemilihan CA berasaskan persekitaran. Jika perlu, bekalkan connection_verify="/path/to/ca-bundle.pem" kepada RequestsTransport, dengan akar yang diperlukan untuk perkhidmatan sebenar.
Klien Blob ditutup sebelum konteks sesi luar. session_owner=False membiarkan pemilikan pada blok luar itu. Bukti kelayakan token yang dicipta secara berasingan mungkin mempunyai pengangkutan HTTP lain; konfigurasikannya juga jika pemerolehannya memerlukan SOCKS.