Azure Data Lake Java: প্রাপ্ত ক্লায়েন্টগুলিকে প্রক্সি পাইপলাইনে রাখুন
প্রক্সি-কনফিগার করা DataLakeServiceClient থেকে ফাইলসিস্টেম ক্লায়েন্ট তৈরি করুন এবং একই সেটআপে আইডেন্টিটি টোকেন পরিবহন কনফিগার করুন।
শেষ লাইনটি গুরুত্বপূর্ণ: আরেকটি ডিফল্ট বিল্ডার চালু না করে কনফিগার করা সার্ভিস থেকেই ফাইলসিস্টেম ক্লায়েন্ট তৈরি করুন:
var proxy = new ProxyOptions(
ProxyOptions.Type.HTTP,
new InetSocketAddress("proxy.example.net", 8080));
var http = new NettyAsyncHttpClientBuilder()
.proxy(proxy)
.build();
var credential = new ClientSecretCredentialBuilder()
.tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.httpClient(http)
.build();
var service = new DataLakeServiceClientBuilder()
.endpoint(accountUrl)
.credential(credential)
.httpClient(http)
.buildClient();
var filesystem = service.getFileSystemClient(fileSystemName);service.getFileSystemClient(fileSystemName) প্যারেন্টের HTTP পাইপলাইন, অ্যাকাউন্ট এন্ডপয়েন্ট এবং প্রযোজ্য স্টোরেজ কনফিগারেশন চাইল্ডে বহন করে।
উদাহরণটি ক্রেডেনশিয়াল বিল্ডারকে একই http দেয়, কারণ টোকেন সংগ্রহ আরেকটি অনুরোধ পথ। আলাদাভাবে তৈরি ফাইলসিস্টেম ক্লায়েন্টকেও তার নির্ধারিত পরিবহন পেতে হবে; কোনো পূর্ববর্তী বিল্ডার গ্লোবাল SDK ডিফল্ট তৈরি করে না।
অ্যাপ্লিকেশনের অ্যাকাউন্ট URL, ফাইলসিস্টেমের নাম ও আইডেন্টিটি মান ব্যবহার করুন। ProxyOptions এবং Netty পরিবহন প্রকার Azure Core থেকে, ক্রেডেনশিয়াল বিল্ডার Azure Identity থেকে, আর সার্ভিস বিল্ডার Azure Storage Data Lake থেকে আসে; InetSocketAddress আসে java.net থেকে।
accountUrl স্টোরেজ এন্ডপয়েন্ট হিসেবেই থাকে, আর ফাইলসিস্টেমের নাম চাইল্ড নির্বাচন করে। এর কোনোটিই প্রক্সি ঠিকানা নয়। সর্বজনীনভাবে অ্যাক্সেসযোগ্য স্টোরেজ এন্ডপয়েন্ট ও পাবলিক মধ্যস্থতাকারী ব্যবহারের অনুমতি থাকলে HTTP প্রক্সি তালিকা থেকে ProxyOptions হোস্ট ও পোর্ট বেছে নিন; স্টোরেজ ও আইডেন্টিটি সেটিংস অপরিবর্তিত রাখুন।