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();

La configuración habitual de Application Default Credentials de la aplicación se mantiene. Donde se permite un proxy público para los extremos de Storage y de tokens, la lista de proxies HTTP ofrece candidatos para el host y el puerto de InetSocketAddress. Proporcione la fábrica mientras se cargan esas credenciales, antes de que sus solicitudes de token HTTP la necesiten.

Dos entradas usan la fábrica: getApplicationDefault(factory) cubre el trabajo HTTP de la implementación de credenciales; HttpTransportOptions cubre el servicio HTTP de Storage. Ninguna de las dos asignaciones configura automáticamente la otra.

StorageOptions.http está disponible desde Java Storage 2.14.0. Mantenga claros los tipos de las bibliotecas: HttpTransportOptions pertenece a Google Cloud Core y NetHttpTransport a la biblioteca cliente HTTP de Google.

Un cliente de Storage específico de gRPC tiene otro transporte. Elija el constructor HTTP para esta personalización de la fábrica en lugar de adjuntar opciones solo de HTTP a un canal gRPC.

Artículos relacionados