Azure Blob ನ Python ಕ್ಲೈಂಟ್ಗಾಗಿ SOCKS5 ಪ್ರಾಕ್ಸಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ
ಒದಗಿಸಿದ Requests ಸೆಷನ್ ಅನ್ನು ಸ್ವತಃ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ, ನಂತರ session_owner=False ಬಳಸಿ ಅದರ ಜೀವಿತಾವಧಿಯನ್ನು ಸಿಂಕ್ರೊನಸ್ Blob ಕ್ಲೈಂಟ್ನ ಹೊರಗೆ ಇರಿಸಿ.
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:
passpass ಬದಲಿಗೆ ಉದ್ದೇಶಿತ Blob ಕಾರ್ಯಾಚರಣೆಯನ್ನು ನಿರ್ವಹಿಸಿ, ಅಪ್ಲಿಕೇಶನ್ನ account_url ಮತ್ತು credential ಬಳಸಿ. Requests ನ ಐಚ್ಛಿಕ SOCKS ಅವಲಂಬನೆಗಳು ಈಗಾಗಲೇ ಇರಬೇಕು. socks5h ಗಮ್ಯಸ್ಥಾನದ DNS ಅನ್ನು ಪ್ರಾಕ್ಸಿಗೆ ನಿಯೋಜಿಸುತ್ತದೆ. ಸಾರ್ವಜನಿಕವಾಗಿ ತಲುಪಬಹುದಾದ Blob ಎಂಡ್ಪಾಯಿಂಟ್ಗೆ, ಅಲ್ಲಿ ಸಾರ್ವಜನಿಕ ಮಧ್ಯವರ್ತಿಗಳಿಗೆ ಅನುಮತಿ ಇರುತ್ತದೆ, SOCKS5 ಪ್ರಾಕ್ಸಿ ಪಟ್ಟಿ ಸೆಷನ್ನ ಪ್ರಾಕ್ಸಿ URL ಗೆ ಅಭ್ಯರ್ಥಿಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
Requests ನ ಪರಿಸರ ಸಂಯೋಜನೆಯನ್ನು ನಿಯಂತ್ರಿಸಲು ಈ ಸೆಷನ್ನಲ್ಲಿ trust_env ಹೊಂದಿಸಿ. RequestsTransport ಪರಿಸರ ಆರಂಭಿಕರಣವನ್ನು ಸೆಷನ್ ರಚಿಸುವಾಗ ಅನ್ವಯಿಸುತ್ತದೆ, ಈಗಾಗಲೇ ಇರುವ ಸೆಷನ್ ನೀಡಿದಾಗ ಅಲ್ಲ. ಸ್ಪಷ್ಟ false ಮೌಲ್ಯವು ಪ್ರಾಕ್ಸಿ ಪರಿಸರ ಇನ್ಪುಟ್ಗಳು ಈ ಮಾರ್ಗವನ್ನು ಬದಲಿಸದಂತೆ ತಡೆಯುತ್ತದೆ.
ಆ ಆಯ್ಕೆಯು ಪರಿಸರ ಆಧಾರಿತ CA ಆಯ್ಕೆಯನ್ನೂ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಅಗತ್ಯವಿದ್ದರೆ, ನಿಜವಾದ ಸೇವೆಗೆ ಬೇಕಾದ ಮೂಲಗಳೊಂದಿಗೆ RequestsTransport ಗೆ connection_verify="/path/to/ca-bundle.pem" ಒದಗಿಸಿ.
Blob ಕ್ಲೈಂಟ್ ಹೊರ ಸೆಷನ್ ಸಂದರ್ಭದ ಮೊದಲು ಮುಚ್ಚುತ್ತದೆ. session_owner=False ಮಾಲೀಕತ್ವವನ್ನು ಆ ಹೊರ ಬ್ಲಾಕ್ನಲ್ಲಿ ಬಿಡುತ್ತದೆ. ಪ್ರತ್ಯೇಕವಾಗಿ ರಚಿಸಿದ ಟೋಕನ್ ರುಜುವಾತಿನ ಬೇರೆ HTTP ಸಾಗಣೆ ಇರಬಹುದು; ಅದರ ಸ್ವಾಧೀನಕ್ಕೆ SOCKS ಬೇಕಾದರೆ ಅದನ್ನೂ ಕಾನ್ಫಿಗರ್ ಮಾಡಿ.