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 トークン要求がそれを必要とする前です。

ファクトリを使う入力は 2 つあります。getApplicationDefault(factory) は認証情報実装の HTTP 処理を、HttpTransportOptions は Storage の HTTP サービスを担当します。どちらの代入も相手を自動的に構成することはありません。

StorageOptions.http は Java Storage 2.14.0 から利用できます。ライブラリの型を混同しないでください。HttpTransportOptions は Google Cloud Core に、NetHttpTransport は Google の HTTP クライアントライブラリに属します。

gRPC 専用の Storage クライアントには別のトランスポートがあります。このファクトリのカスタマイズには HTTP ビルダーを選び、HTTP 専用のオプションを gRPC チャネルに付けないでください。

関連記事