Google Cloud Storage Java: настройка транспорта HTTP через прокси
Выберите StorageOptions.http и передайте фабрику транспорта как параметрам службы HTTP, так и 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();Обычная настройка 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.