public abstract class IIJGIOWebServiceClient extends Object
エンドポイントなど、IIJ GIOストレージ&アナリシスサービス SDKのクライアントの基本的な 設定を定義しています。
Modifier and Type | Field and Description |
---|---|
protected HttpClient |
client
サービスへの接続に使用するより低レベルなHTTP クライアント
|
protected ClientConfiguration |
clientConfiguration
クライアントの設定オブジェクト
|
protected URI |
endpoint
クライアントの接続先となるサービスのエンドポイント
|
protected List<RequestHandler> |
requestHandlers
Optional request handlers for additional request processing.
|
protected int |
timeOffset
Optional offset (in seconds) to use when signing requests
|
protected boolean |
virtualHostEndpointEnabled
リソースの指定方法としてバーチャルホスト形式を使用するかどうか
|
Constructor and Description |
---|
IIJGIOWebServiceClient(ClientConfiguration clientConfiguration)
特定のクライアント設定を使いIIJGIOWebServiceClientオブジェクトを生成します
|
Modifier and Type | Method and Description |
---|---|
void |
addRequestHandler(RequestHandler requestHandler)
リクエスト・ハンドラーをリクエストのライフサイクルの一部として実行される
登録済みハンドラーのリストへ追加します。
|
protected <T> HttpRequest |
convertToHttpRequest(Request<T> request,
HttpMethodName methodName)
Deprecated.
|
protected ExecutionContext |
createExecutionContext()
Deprecated.
by
createExecutionContext(IIJGIOWebServiceRequest) .
このメソッドは後方互換性のためだけの理由で存在しています。
その理由はこのクラスの古いバージョンでコンパイルされたクライアントが
実行時に |
protected ExecutionContext |
createExecutionContext(IIJGIOWebServiceRequest req) |
protected String |
getServiceAbbreviation()
このサービスに対するサービスの略称を返します。
リージョンによるサービス・エンドポイントを特定するために使用されます。
|
int |
getTimeOffset()
このクライアントに対して、時間オフセットに任意の値を取得します。
この値はこのクライアントを通して全てのリクエストに適用されます。
値は、秒単位で、正数は現時刻が「早い」、負数は「遅い」という
ニュアンスになります。
|
boolean |
isVirtualHostEndpointEnabled()
リソースの指定方法としてバーチャルホスト形式を使用するかどうかを返します。
|
void |
removeRequestHandler(RequestHandler requestHandler)
リクエスト・ハンドラーをリクエストのライフサイクルの一部として実行される
登録済みハンドラーのリストから削除します。
|
void |
setEndpoint(String endpoint)
エンドポイントを上書き設定します。
リージョンの切り替えなどに使用できます。
|
void |
setRegion(Region region)
setEndpoint(String) に代わるもので、
このクライアントのサービス・コールのためのリージョンのエンドポイントを設定します。
呼び出し側はどのIIJ GIOストレージ&アナリシスサービスのリージョンで動作させたいかを
制御するためにこのメソッドを使用できます。 |
void |
setTimeOffset(int timeOffset)
このクライアントに対して、時間オフセットに任意の値を設定します。
この値はこのクライアントを通して全てのリクエストに適用されます。
値は、秒単位で、正数は現時刻が「早い」、負数は「遅い」という
ニュアンスになります。
|
void |
setVirtualHostEndpointEnabled(boolean enable)
リソースの指定方法としてバーチャルホスト形式を使用の有無を設定します。
|
void |
shutdown()
クライアントをシャットダウンし、すべてのリソースを開放します。
これはオプションメソッドであり、明示的にリソースの開放を行ないたい
場合以外が呼ぶ必要はありません。
クライアントを一旦シャットダウンすると、それ以降のリクエストは
行えなくなります
|
IIJGIOWebServiceClient |
withTimeOffset(int timeOffset)
このクライアントに対して、時間オフセットに任意の値を設定します。
この値はこのクライアントを通して全てのリクエストに適用されます。
値は、秒単位で、正数は現時刻が「早い」、負数は「遅い」という
ニュアンスになります。
|
protected final ClientConfiguration clientConfiguration
protected final HttpClient client
protected final List<RequestHandler> requestHandlers
protected URI endpoint
protected boolean virtualHostEndpointEnabled
protected int timeOffset
public IIJGIOWebServiceClient(ClientConfiguration clientConfiguration)
clientConfiguration
- このクライアントで使うクライアント設定オブジェクトpublic void setEndpoint(String endpoint) throws IllegalArgumentException
呼び出す際は、エンドポイントのFQDN(例: storage-dag.iijgio.com)や
プロトコルを含んだURL(例: https://storage-dag.iijgio.com)を指定できます
URLではなくFQDNを指定した場合、
クライアント設定ClientConfiguration
のプロトコル設定が使用
されます。デフォルト値はHTTPSです。
endpoint
- エンドポイントのFQDN(例: storage-dag.iijgio.com) または
URL(例: https://storage-dag.iijgio.com)IllegalArgumentException
- エンドポイント設定に問題があった場合public void setRegion(Region region) throws IllegalArgumentException
setEndpoint(String)
に代わるもので、
このクライアントのサービス・コールのためのリージョンのエンドポイントを設定します。
呼び出し側はどのIIJ GIOストレージ&アナリシスサービスのリージョンで動作させたいかを
制御するためにこのメソッドを使用できます。
このメソッドはスレッドセーフではありません。クライアントが生成され、 いかなるサービス・リクエストが作成される前に、リージョンは設定され なくてはなりません。その後、それを変更すると、トランジットや再試行時に サービス・リクエストの競合状態を生み出すことになります。
デフォルトでは、全リージョンの全サービス・エンドポイントはHTTPSプロトコルを使用します。 HTTPを代わりに使用するためには、生成時にClientConfiguration
内でそれを指定してください。region
- このクライアントが通信するリージョン。所定のリージョンにアクセスするためには
Region.getRegion(com.iijgio.dag.regions.Regions)
を参照してください。IllegalArgumentException
- 所定のリージョンがnullの場合、またはこのサービスが
所定のリージョンで利用できない場合。
Region.isServiceSupported(String)
を参照してください。Region.getRegion(com.iijgio.dag.regions.Regions)
,
Region.createClient(Class, com.iijgio.dag.auth.IIJGIOCredentialsProvider, ClientConfiguration)
protected String getServiceAbbreviation()
ServiceAbbreviations
public boolean isVirtualHostEndpointEnabled()
true
を返します。public void setVirtualHostEndpointEnabled(boolean enable)
バーチャルホスト形式の場合は、バケット名をホスト部で指定し、HTTPのHostヘッダーには「{BucketName}.{Endpoint}」と設定され、
使用しない場合は、バケット名はURLのパス部で指定し、HTTPのHostヘッダーには「{Endpoint}」が設定されます。
(BucketName: 対象とするバケット名, Endpoint: REST APIのエンドポイント)
enable
- バーチャルホスト形式を使用にする場合は true
そうでない場合は false
をセットします。public void shutdown()
@Deprecated protected <T> HttpRequest convertToHttpRequest(Request<T> request, HttpMethodName methodName)
Request
オブジェクトをHttpRequestオブジェクトに変換します
Requestのすべてのヘッダ・パラメタ等はHttpRequestに反映されますT
- 変換するリクエストオブジェクトの型request
- 変換するリクエストオブジェクトmethodName
- 変換したオブジェクトで使用するHTTPメソッド
(GET, PUT, DELETE, HEAD)Request
public void addRequestHandler(RequestHandler requestHandler)
requestHandler
- 現在のリクエスト・ハンドラーのリストに追加する新しいハンドラーpublic void removeRequestHandler(RequestHandler requestHandler)
requestHandler
- 現在のリクエスト・ハンドラーのリストから削除するハンドラーprotected final ExecutionContext createExecutionContext(IIJGIOWebServiceRequest req)
@Deprecated protected final ExecutionContext createExecutionContext()
createExecutionContext(IIJGIOWebServiceRequest)
.
このメソッドは後方互換性のためだけの理由で存在しています。
その理由はこのクラスの古いバージョンでコンパイルされたクライアントが
実行時にNoSuchMethodError
にならないようにするためです。
しかしながら、このメソッドを呼ぶことはたとえリクエストレベルで指定されても
リクエスト・ メトリック・コントローラを無視し無効にします。
サービスクライアントやIIJ GIOストレージ&アナリシスサービス SDKレベルで
指定されたリクエスト・ メトリック・コントローラはまだ高く評価されます。
public IIJGIOWebServiceClient withTimeOffset(int timeOffset)
timeOffset
- このクライアントに対する時間オフセット(秒)の任意の値public int getTimeOffset()
public void setTimeOffset(int timeOffset)
timeOffset
- このクライアントに対する時間オフセット(秒)の任意の値Copyright © 2018. All rights reserved.