私の作ったこのコマンドを使用すれば、すぐに操作可能なのですが、今回はソースコードレベルでの解説をしたいと思います。
ここでは
- Vaultの作成
- Vaultの詳細取得
- Vaultの一覧取得
- Vaultの削除
について紹介します。
今回関係あるのは以下の2つのコードです。
GlacierTools.javaにはAmazon Glacier共通の処理やパラメータ(リージョンのURL等)を記述しています。
VaultController.javaにはAmazon GlacierのVault操作に固有な処理が記述してあります。
ではコードの説明に移りたいと思います。
まずはVaultの作成からです。
1.Vaultの作成
AmazonGlacierClientをインスタンス化する
まずはAmazon Glacierを操作するためのクラスをインスタンス化します。
コードはGlacierTools.javaの
辺りです。
このコンストラクタ内で、リージョンの指定(endpoint)とAwsCredentials.properties(awsProperties)の指定も行なっています。
デフォルトのリージョンと.propertiesを使用する場合は上の引数無しのコンストラクタを、明示的に指定したい場合は下の引数有りのコンストラクタを使います。
そして、コンストラクタ内でインスタンス化したAmazonGlacierClientインスタンスを、フィールドとして保持しています。
なお、これ以降のAmazon Glacierに対する操作は此処で指定したリージョン(endpoint)に対する操作になります。
Vaultを作成した時と別のリージョンに対してlistVault等を実行しても期待する結果を得ることはできません。
※補足
リージョンとは?
リージョンとはデータセンターが設置してある場所です。
アメリカやヨーロッパ等好きな場所を選ぶことができます。但し、場所によって料金が違うので注意。
AwsCredentials.propertiesとは?
AWSにアクセスするための秘密の暗号を記述するプロパティファイルです。
こんな感じの内容が書いてあります。
辺りです。
このコンストラクタ内で、リージョンの指定(endpoint)とAwsCredentials.properties(awsProperties)の指定も行なっています。
デフォルトのリージョンと.propertiesを使用する場合は上の引数無しのコンストラクタを、明示的に指定したい場合は下の引数有りのコンストラクタを使います。
そして、コンストラクタ内でインスタンス化したAmazonGlacierClientインスタンスを、フィールドとして保持しています。
なお、これ以降のAmazon Glacierに対する操作は此処で指定したリージョン(endpoint)に対する操作になります。
Vaultを作成した時と別のリージョンに対してlistVault等を実行しても期待する結果を得ることはできません。
※補足
リージョンとは?
リージョンとはデータセンターが設置してある場所です。
アメリカやヨーロッパ等好きな場所を選ぶことができます。但し、場所によって料金が違うので注意。
AwsCredentials.propertiesとは?
AWSにアクセスするための秘密の暗号を記述するプロパティファイルです。
こんな感じの内容が書いてあります。
AmazonGlacierClientインスタンスに使用するリージョンを指定する
上で行ったので説明を省きます。CreateVaultRequestをインスタンス化する
辺りです。
引数のvaultNameに作成したVaultの名前を指定します。
簡単ですね。
簡単ですね。
createVaultメソッドを実行する
次にAmazon Glaicerに実際にリクエストを送ります。
上でnewしたCreateVaultRequestのインスタンスを引数としてAmazonGlacierClientのcreateVaultメソッドを呼んでいるだけです。
上でnewしたCreateVaultRequestのインスタンスを引数としてAmazonGlacierClientのcreateVaultメソッドを呼んでいるだけです。
本当に簡単です。
レスポンスとしてCreateVaultResultオブジェクトを得る
リクエストに対するレスポンスはcreateVaultの戻り値として取得できます。
2.Vaultの詳細取得
処理の流れはVaultの作成の時とほとんど同じです。AmazonGlacierClientのインスタンスを作って、リクエストのインスタンスを作って、今度はdescribeVaultを実行します。
リクエストのインスタンスの作成時に詳細を取得したいVault名を指定します。
コードはVaultController.javaの
辺りです。
これもほんの数行です。
3.Vaultの一覧取得
今度はlistVaultsメソッドを実行します。
今回は引数すらありません。
上にも書きましたが、リージョンが違うとVaultの情報が取得できないので気をつけて下さい。
上にも書きましたが、リージョンが違うとVaultの情報が取得できないので気をつけて下さい。
4.Vaultの削除
以上でVaultに対する基本的な操作は全て行えるようになりました。
どれも非常に単純で分かりやすいと思います。
実際にこのVaultController.javaを使用してコマンドの形にしているコードがVaultControllerCmd.javaになります。ほとんどコマンドライン引数の処理になってしまっていますが、コードの下部で実際にAWSに対して操作を行なっています。
もし興味を持っていただけたら是非読んでみて下さい。
次はVaultの中に保存するArchiveに対する操作に関して説明したいと思います。
参考ページ
0 件のコメント:
コメントを投稿