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-এর জন্য প্রার্থী সরবরাহ করে।
এই সেশনে trust_env সেট করুন Requests-এর পরিবেশ সংহতি নিয়ন্ত্রণ করতে। RequestsTransport তার পরিবেশ আরম্ভ প্রয়োগ করে যখন এটি একটি সেশন তৈরি করে, আগে থেকে থাকা একটি দেওয়া হলে নয়। স্পষ্ট false মান প্রক্সি পরিবেশের ইনপুটগুলিকে এই পথটি প্রতিস্থাপন করা থেকে বিরত রাখে।
এই পছন্দটি পরিবেশ-ভিত্তিক CA নির্বাচনও নিষ্ক্রিয় করে। প্রয়োজনে RequestsTransport-এ connection_verify="/path/to/ca-bundle.pem" দিন, প্রকৃত পরিষেবার জন্য প্রয়োজনীয় রুট সহ।
Blob ক্লায়েন্টটি বাইরের সেশন প্রসঙ্গের আগে বন্ধ হয়। session_owner=False মালিকানা সেই বাইরের ব্লকের সাথে রাখে। আলাদাভাবে তৈরি একটি টোকেন ক্রেডেনশিয়ালের অন্য HTTP পরিবহন থাকতে পারে; এর অধিগ্রহণের জন্য SOCKS প্রয়োজন হলে সেটিও কনফিগার করুন।