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 ਚੋਣ ਨੂੰ ਵੀ ਅਸਮਰੱਥ ਕਰਦੀ ਹੈ। ਜੇ ਲੋੜ ਹੋਵੇ, ਤਾਂ ਅਸਲ ਸੇਵਾ ਲਈ ਲੋੜੀਂਦੇ ਰੂਟਾਂ ਸਮੇਤ connection_verify="/path/to/ca-bundle.pem" RequestsTransport ਨੂੰ ਦਿਓ।
Blob ਕਲਾਇੰਟ ਬਾਹਰੀ ਸੈਸ਼ਨ ਸੰਦਰਭ ਤੋਂ ਪਹਿਲਾਂ ਬੰਦ ਹੋ ਜਾਂਦਾ ਹੈ। session_owner=False ਮਾਲਕੀਅਤ ਉਸ ਬਾਹਰੀ ਬਲਾਕ ਕੋਲ ਛੱਡਦਾ ਹੈ। ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਬਣਾਈ ਗਈ ਟੋਕਨ ਸਨਦ ਦੀ ਹੋਰ HTTP ਢੁਆਈ ਹੋ ਸਕਦੀ ਹੈ; ਜੇ ਇਸਦੀ ਪ੍ਰਾਪਤੀ ਲਈ SOCKS ਲੋੜੀਂਦਾ ਹੈ ਤਾਂ ਇਸਨੂੰ ਵੀ ਕਨਫਿਗਰ ਕਰੋ।