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 normale configurazione di Application Default Credentials dell'applicazione resta invariata. Dove è consentito un proxy pubblico per gli endpoint di Storage e dei token, l'elenco di proxy HTTP offre candidati per host e porta di InetSocketAddress. Fornisci la factory durante il caricamento di quelle credenziali, prima che le loro richieste di token HTTP ne abbiano bisogno.

Due input utilizzano la factory: getApplicationDefault(factory) copre il lavoro HTTP dell'implementazione delle credenziali; HttpTransportOptions copre il servizio HTTP di Storage. Nessuna delle due assegnazioni configura automaticamente l'altra.

StorageOptions.http è disponibile da Java Storage 2.14.0. Tieni distinti i tipi delle librerie: HttpTransportOptions appartiene a Google Cloud Core e NetHttpTransport alla libreria client HTTP di Google.

Un client Storage specifico per gRPC ha un altro trasporto. Scegli il builder HTTP per questa personalizzazione della factory invece di collegare opzioni solo HTTP a un canale gRPC.

Articoli correlati