Azure Data Lake Java: saglabājiet atvasinātos klientus proxy plūsmā
Atvasiniet failu sistēmas klientu no ar proxy konfigurētā DataLakeServiceClient un tajā pašā iestatījumā konfigurējiet identitātes marķiera pārvadi.
Pēdējā rinda ir svarīga: atvasiniet failu sistēmas klientu no konfigurētā servisa, nevis sāciet vēl vienu noklusējuma 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) pārnes vecāka HTTP plūsmu, konta galapunktu un piemērojamo krātuves konfigurāciju uz bērnu.
Piemērā tas pats http tiek nodots akreditācijas datu builderim, jo marķiera iegūšana ir vēl viens pieprasījuma ceļš. Atsevišķi būvētam failu sistēmas klientam arī jāsaņem tam paredzētā pārvade; neviens iepriekšējais builder neveido globālu SDK noklusējumu.
Izmantojiet lietojumprogrammas konta URL, failu sistēmas nosaukumu un identitātes vērtības. ProxyOptions un Netty pārvades tipi nāk no Azure Core, akreditācijas datu builder no Azure Identity, un servisa builder no Azure Storage Data Lake; InetSocketAddress nāk no java.net.
accountUrl paliek krātuves galapunkts, un failu sistēmas nosaukums izvēlas bērnu. Neviens no tiem nav proxy adrese. Ja krātuves galapunkts ir publiski sasniedzams un ir atļauja izmantot publisku starpnieku, izvēlieties ProxyOptions resursdatoru un portu no HTTP proxy saraksta; atstājiet krātuves un identitātes iestatījumus vietā.