Google Cloud Storage Java: configurar o transporte HTTP por proxy
Selecione StorageOptions.http e forneça a fábrica de transporte tanto às opções do serviço HTTP quanto ao Application Default Credentials.
var proxy = new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example.net", 8080));
com.google.auth.http.HttpTransportFactory factory = () ->
new com.google.api.client.http.javanet.NetHttpTransport.Builder()
.setProxy(proxy)
.build();
var credentials =
com.google.auth.oauth2.GoogleCredentials.getApplicationDefault(factory);
var transportOptions =
com.google.cloud.http.HttpTransportOptions.newBuilder()
.setHttpTransportFactory(factory)
.build();
var storage = com.google.cloud.storage.StorageOptions.http()
.setCredentials(credentials)
.setTransportOptions(transportOptions)
.build()
.getService();A configuração habitual do Application Default Credentials da aplicação permanece. Onde um proxy público é permitido para os endpoints de Storage e de tokens, a lista de proxies HTTP oferece candidatos para o host e a porta do InetSocketAddress. Forneça a fábrica ao carregar essas credenciais, antes que as suas solicitações de token HTTP precisem dela.
Duas entradas usam a fábrica: getApplicationDefault(factory) cobre o trabalho HTTP da implementação de credenciais; HttpTransportOptions cobre o serviço HTTP do Storage. Nenhuma das atribuições configura automaticamente a outra.
StorageOptions.http está disponível desde o Java Storage 2.14.0. Mantenha os tipos das bibliotecas distintos: HttpTransportOptions pertence ao Google Cloud Core e NetHttpTransport à biblioteca cliente HTTP do Google.
Um cliente de Storage específico de gRPC tem outro transporte. Escolha o construtor HTTP para esta personalização da fábrica em vez de anexar opções apenas de HTTP a um canal gRPC.