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

Laksanakan 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.

Artikel berkaitan