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

Jalankan operasi Blob yang dimaksud sebagai pengganti pass, menggunakan account_url dan credential aplikasi. Dependensi SOCKS opsional Requests harus sudah ada. socks5h mendelegasikan DNS tujuan ke proksi. Untuk endpoint Blob yang dapat dijangkau publik dan mengizinkan perantara publik, daftar proksi SOCKS5 menyediakan kandidat untuk URL proksi sesi.

Atur trust_env pada sesi ini untuk mengendalikan integrasi lingkungan Requests. RequestsTransport menerapkan inisialisasi lingkungan saat membuat sesi, bukan saat diberi sesi yang sudah ada. Nilai false yang eksplisit mencegah input lingkungan proksi menggantikan rute ini.

Pilihan itu juga menonaktifkan pemilihan CA berbasis lingkungan. Jika perlu, berikan connection_verify="/path/to/ca-bundle.pem" ke RequestsTransport, dengan root yang diperlukan untuk layanan sebenarnya.

Klien Blob ditutup sebelum konteks sesi luar. session_owner=False membiarkan kepemilikan pada blok luar itu. Kredensial token yang dibuat terpisah dapat memiliki transport HTTP lain; konfigurasikan juga jika perolehannya membutuhkan SOCKS.

Artikel terkait