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

Обичайната настройка на Application Default Credentials на приложението остава непроменена. Където е разрешен публичен прокси за крайните точки на Storage и на токените, списъкът с HTTP проксита предлага кандидати за хоста и порта на InetSocketAddress. Подайте фабриката при зареждането на тези идентификационни данни, преди заявките им за HTTP токен да се нуждаят от нея.

Два входа използват фабриката: getApplicationDefault(factory) покрива HTTP работата на реализацията на идентификационните данни; HttpTransportOptions покрива HTTP услугата на Storage. Нито едно от двете присвоявания не конфигурира автоматично другото.

StorageOptions.http е наличен от Java Storage 2.14.0. Дръжте типовете на библиотеките правилни: HttpTransportOptions принадлежи на Google Cloud Core, а NetHttpTransport — на HTTP клиентската библиотека на Google.

Клиентът за Storage, специфичен за gRPC, има друг транспорт. За тази настройка на фабриката изберете HTTP конструктора, вместо да прикачвате опции само за HTTP към gRPC канал.

Подобни статии