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

บทความที่เกี่ยวข้อง