अंतिम पंक्ति महत्वपूर्ण है: दूसरा डिफ़ॉल्ट builder शुरू करने के बजाय कॉन्फ़िगर की गई सेवा से फ़ाइलसिस्टम क्लाइंट प्राप्त करें:

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 पाइपलाइन, खाता एंडपॉइंट और लागू स्टोरेज कॉन्फ़िगरेशन को चाइल्ड तक ले जाता है।

उदाहरण क्रेडेंशियल builder को वही http देता है क्योंकि टोकन प्राप्त करना एक और अनुरोध पथ है। अलग से बनाए गए फ़ाइलसिस्टम क्लाइंट को भी अपना इच्छित परिवहन मिलना चाहिए; कोई पहले का builder वैश्विक SDK डिफ़ॉल्ट नहीं बनाता।

एप्लिकेशन का खाता URL, फ़ाइलसिस्टम नाम और पहचान मान उपयोग करें। ProxyOptions और Netty परिवहन प्रकार Azure Core से, क्रेडेंशियल builder Azure Identity से और सेवा builder Azure Storage Data Lake से आते हैं; InetSocketAddress java.net से आता है।

accountUrl स्टोरेज एंडपॉइंट ही रहता है, और फ़ाइलसिस्टम नाम चाइल्ड चुनता है। इनमें से कोई प्रॉक्सी पता नहीं है। सार्वजनिक रूप से पहुँच योग्य स्टोरेज एंडपॉइंट और सार्वजनिक मध्यस्थ उपयोग करने की अनुमति होने पर HTTP प्रॉक्सी सूची से ProxyOptions होस्ट और पोर्ट चुनें; स्टोरेज और पहचान सेटिंग्स यथावत रखें।

संबंधित लेख