Azure Data Lake Java: mantén els clients derivats al pipeline del proxy
Deriva el client del sistema de fitxers des del DataLakeServiceClient configurat amb el proxy i configura el transport del testimoni d'identitat a la mateixa configuració.
L'última línia és important: deriva el client del sistema de fitxers des del servei configurat, en lloc d'iniciar un altre builder per defecte:
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) porta el pipeline HTTP del pare, el punt de connexió del compte i la configuració d'emmagatzematge aplicable al fill.
L'exemple proporciona el mateix http al builder de credencials perquè l'obtenció del testimoni és una altra ruta de sol·licitud. Un client del sistema de fitxers construït per separat també ha de rebre el transport previst; cap builder anterior crea un valor per defecte global de l'SDK.
Utilitza l'URL del compte, el nom del sistema de fitxers i els valors d'identitat de l'aplicació. ProxyOptions i els tipus de transport Netty provenen d'Azure Core, el builder de credencials d'Azure Identity i el builder del servei d'Azure Storage Data Lake; InetSocketAddress prové de java.net.
accountUrl continua sent el punt de connexió de l'emmagatzematge, i el nom del sistema de fitxers selecciona el fill. Cap dels dos és l'adreça del proxy. Amb un punt de connexió d'emmagatzematge accessible públicament i permís per utilitzar un intermediari públic, tria l'amfitrió i el port de ProxyOptions a la llista de proxies HTTP; mantén la configuració d'emmagatzematge i identitat.