HULFT8 クラウドストレージオプションVer.8.5.1の新機能をGCSで試してみた

#はじめに

[前回の投稿](https://qiita.com/reohul/items/199c4832523f29020e9f)で、**「HULFT8 Ver.8.5.0 クラウドストレージオプション」**を使用した、GCSとのアップロード/ダウンロードをやってみました。

今回、新たに**「Ver.8.5.1」**がリリースされ、できることが増えたのでそちらをやってみようと思います。

* **HULFT クラウドストレージOP**

https://www.hulft.com/software/hulft-8/hulft-cso

## Ver.8.5.1の追加機能

* クラウドストレージへ接続時の「認証情報」をファイルIDごとに変更可能

Ver.8.5.0では環境変数で認証情報を指定していたので1つのHULFTにつき1つの認証情報しか使えませんでしたが、これにより1つのHULFTで複数のアカウントのストレージとファイル転送ができるようになりました。

また、上記に伴い、認証情報ごとに以下の設定ができるようになっています。

* HULFT クラウドストレージオプションと各クラウドストレージとの転送時の「HTTP リクエストのタイムアウト」
* ダウンロード時の「ダウンロード転送並列数」
* アップロード時の「アップロード転送並列数」
* ダウンロード時の 1 パートの「パートサイズ」
* アップロード時の 1 パートの「パートサイズ」

# 準備
##HULFT クラウドストレージオプションのリビジョンアップ

HULFTクラウドストレージオプションVer.8.5.0をVer.8.5.1にリビジョンアップします。
前回、Ver.8.5.0を既にインストールしているので、クラウドストレージオプションVer.8.5.1のsetupをたたき、前回インストールしたHULFTのパスを指定するのみでOKです。

![setup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922358/620ac817-66be-dd0f-dbea-e66412363a41.png)
これでリビジョンアップ完了です。

適用を確認するにはutlhulversionコマンドの結果にオプションのバージョンが表示されますので、そこから確認しましょう。
![hulver.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922358/979646c2-2c8d-cc61-781e-5cf58f6ab27d.png)


GCSアカウントやバケットの準備は前回と同じなので割愛します。
##認証情報の設定の流れ
ファイルIDごとに認証情報を変えるには、以下の流れで設定します。

1. コマンドを使用してクラウドストレージDBに登録する
2. 配信/集信管理情報のファイル名に登録したIDを指定する
3. 配信/集信時にクラウドストレージDBに登録したIDの設定で転送が行われる

#実際に設定してみる
基本はVer.8.5.0と同じで、環境変数に認証情報を設定する、で問題ありません。
**特に複数アカウントの使い分け等をしないのであればVer.8.5.0と同じ設定でも動きます。**
複数アカウントの使い分け等をする場合の流れを以下に説明します。
##1. コマンドを使用して認証情報をHULFT内のクラウドストレージDBに登録する
まずはコマンドを使用するための準備をします。
コマンドを使用するためには以下のパスをOSの環境変数PATHに追加するなりしてコマンドを実行できるようにしておきます。

　**HULFT インストールディレクトリ /bin/plugins_utls**

コマンドを実行できるようにしたら、ストレージ認証情報の登録コマンドを実行して[ストレージ認証ID]をHULFTに登録します。

* コマンド実行例

```
utlgsinfoadd -t auth --id HOGE1 --app-credentials hogehoge1.json 
```
これで、[ストレージ認証ID]：HOGE1に「hogehoge.json」のGCS認証情報を登録しました。
登録したい認証情報が複数あるなら、認証情報の分だけIDを分けて登録します。

```
utlgsinfoadd -t auth --id HOGE2 --app-credentials hogehoge2.json 
utlgsinfoadd -t auth --id HOGE3 --app-credentials hogehoge3.json
…以下続く 
```
　※コマンドの使用方法詳細は以下の公式マニュアルを参考にしてください。
https://www.hulft.com/help/ja-jp/HULFT-V8/COM-CLD/Content/HULFT_CLOUD/Cloud_Utility/Registration_storage_attestation_GCS.htm

ストレージ認証IDを登録したら、今度はそれをストレージ管理情報に登録します。
* コマンド実行例

```
utlgsinfoadd -t rcv --id ID reohul-test --auth-id HOGE1
```
これで、集信時に使える集信ストレージ管理情報ID「reohul-test」が登録できました。
集信管理情報で「reohul-test」を指定すると、ストレージ認証ID「HOGE1」で指定した認証情報で転送が行われます。

今回は上記コマンドでバケット名を指定しなかったので、管理情報ID「reohul-test」がバケット名として使われます。

　※コマンドの使用方法詳細は以下の公式マニュアルを参考にしてください。
https://www.hulft.com/help/ja-jp/HULFT-V8/COM-CLD/Content/HULFT_CLOUD/Cloud_Utility/Registration_storagefile_GCS.htm


##2. 配信/集信管理情報のファイル名に登録したIDを指定する
HULFTの集信管理情報を設定します。
前回では集信ファイル名にクラウドストレージのファイルを**「gs://バケット名/フォルダ名/ファイル」**の形式で指定しました。

今回は、集信ストレージ管理情報IDを設定したので、**「gs://集信ストレージ管理情報ID/オブジェクト名」**の形式で指定します。

集信ストレージ管理情報IDはバケット名にしたので集信ファイル名は前回と同じになりましたが、このように集信ファイル名に集信ストレージ管理情報IDを設定するとそのIDで指定された認証情報、バケット名で転送が行われます。

![shukanri.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922358/7029db4f-3a2f-24de-07c7-7a4bc2c5088d.png)


##3. 作成した管理情報で実際に転送してみる

作成した集信管理情報に対応する配信側HULFTからファイルを転送してみます。
転送したらまずは集信履歴を確認してみましょう。
![rireki1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/922358/a9025c5b-fa81-a625-46b9-d7b1c25ca832.png)
完了コードは「0000-0000」ですので、正常に終了したようです。
念のためGCS側にファイルが届いているかも確認できれば、集信管理情報で指定した「集信ストレージ管理情報ID(のバケット名)/フォルダ/ファイル」での集信に成功です。

以上、**「HULFT8 Ver.8.5.1 クラウドストレージオプション」**を使用した連携について設定イメージなどの参考にしていただければと思います。