Ρύθμιση διακομιστή μεσολάβησης SOCKS5 για τον πελάτη Python του Azure Blob
Ρυθμίστε την ίδια τη συνεδρία Requests που παρέχεται και, στη συνέχεια, κρατήστε τη διάρκεια ζωής της έξω από τον σύγχρονο πελάτη 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.