SOCKS5 փրոքսիի կարգավորում Azure Blob-ի Python հաճախորդի համար
Կարգավորեք տրված 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-ը։ Requests-ի կամընտիր SOCKS կախվածությունները պետք է արդեն առկա լինեն։ socks5h-ը նպատակակետի DNS-ը փոխանցում է փրոքսիին։ Հանրային հասանելի Blob վերջնակետի համար, որտեղ թույլատրված են հանրային միջնորդներ, SOCKS5 փրոքսիների ցանկը թեկնածուներ է տրամադրում սեսիայի փրոքսի URL-ի համար։
Սահմանեք trust_env այս սեսիայում՝ Requests-ի միջավայրի ինտեգրումը կառավարելու համար։ RequestsTransport-ը կիրառում է միջավայրի սկզբնավորումը սեսիա ստեղծելիս, ոչ թե գոյություն ունեցողը տրամադրելիս։ Բացահայտ false արժեքը թույլ չի տալիս փրոքսիի միջավայրի մուտքերին փոխարինել այս ուղին։
Այդ ընտրությունը նաև անջատում է միջավայրի վրա հիմնված CA ընտրությունը։ Անհրաժեշտության դեպքում RequestsTransport-ին տրամադրեք connection_verify="/path/to/ca-bundle.pem"՝ փաստացի ծառայության համար պահանջվող արմատներով։
Blob հաճախորդը փակվում է արտաքին սեսիայի համատեքստից առաջ։ session_owner=False-ը սեփականությունը թողնում է այդ արտաքին բլոկին։ Առանձին ստեղծված թոքենի հավատարմագրումը կարող է ունենալ այլ HTTP փոխադրում. կարգավորեք նաև այն, եթե դրա ստացումը պահանջում է SOCKS։