Cấu hình proxy SOCKS5 cho ứng dụng Python của Azure Blob
Tự cấu hình phiên Requests được cung cấp, sau đó giữ vòng đời của nó bên ngoài ứng dụng Blob đồng bộ bằng 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:
passThực hiện thao tác Blob dự định thay cho pass, dùng account_url và credential của ứng dụng. Các phần phụ thuộc SOCKS tùy chọn của Requests phải đã có sẵn. socks5h ủy thác DNS đích cho proxy. Với một điểm cuối Blob có thể truy cập công khai nơi các trung gian công cộng được phép, danh sách proxy SOCKS5 cung cấp các lựa chọn cho URL proxy của phiên.
Đặt trust_env trên phiên này để kiểm soát tích hợp môi trường của Requests. RequestsTransport áp dụng khởi tạo môi trường khi tạo phiên, không phải khi được cấp một phiên đã tồn tại. Giá trị false rõ ràng ngăn các đầu vào môi trường proxy thay thế tuyến này.
Lựa chọn đó cũng vô hiệu hóa việc chọn CA dựa trên môi trường. Nếu cần, cung cấp connection_verify="/path/to/ca-bundle.pem" cho RequestsTransport, cùng các gốc cần thiết cho dịch vụ thực tế.
Ứng dụng Blob đóng trước ngữ cảnh phiên bên ngoài. session_owner=False để quyền sở hữu ở khối bên ngoài đó. Thông tin xác thực token được tạo riêng có thể có một giao vận HTTP khác; cấu hình cả nó nếu việc lấy token cần SOCKS.