กำหนดค่า SOCKS5 Proxy สำหรับไคลเอนต์ Python ของ Azure Blob
กำหนดค่า Requests session ที่ให้มาเอง จากนั้นเก็บอายุการใช้งานไว้นอกไคลเอนต์ 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