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։

Առնչվող հոդվածներ