HULFTクラウドストレージオプションでAzure BLOB Storageにファイル転送してみた

#　はじめに
こんにちは。よろず相談担当　すぎもん:yum:です。
今回は、HULFTのクラウドストレージオプションを使って、AzureのBlob Storageへファイル転送をしてみます。
#　今回やること
Azure側の設定や、HULFTのインストールを1からやってみて、Blob Storageにファイルを転送。

折角なのでHULFT機能を少し使って、ファイル名の動的指定もしてみようと思っていますが、長くなりそうなので、記事は「Azureへファイル転送編」と「動的指定でファイル転送編」の2部制で更新します！
[AzureのBLOBストレージへのファイル転送で、HULFTの動的指定を使ってみた。](https://qiita.com/sugimon/items/ba0866be832a734feec5)
#　システム構成
下記のような構成イメージでクラウドへのファイル転送をしてみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d63f9132-4198-4192-1646-e48572da203d.png)
#　環境準備（Azure側の設定）

Blob Storageにファイル転送するには、Azure側での設定が必要です。

＜必要なもの＞
**・ストレージアカウント**
Azure内データ用の一意な名前空間
**・アクセスキーまたはストレージSASトークン**
Blob Storageにアクセスするためのキー
**・コンテナー**
ファイルシステムのフォルダ/ディレクトリと同様なBlobのセットを整理する箱のようなもの
####**①ストレージアカウントの作成**
 1.　Azure Portalにサインイン。
 2.　カテゴリのストレージから「すべてのサービス」を選択。
 3.　カテゴリのストレージから「ストレージアカウント」を選択。
 4.　「＋追加」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b30c2c8c-da42-33a8-15a9-821376cb462a.png)
ストレージアカウントは簡単に作成できました。ストレージアカウント名はお好きなものを設定してください。
※私は会社の共通アカウントを使ったのでモザイク加工させていただいてます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d4f40d19-efa4-b48d-ab56-ac9e1a5cb66f.png)

####**②アクセスキーまたはSASトークンの取得**
HULFTのクラウドストレージオプションでは、ストレージへアクセスするために、アクセスキーか、ストレージSASトークンのどちらかが必要です。
**アクセスキーの取得**
1.　作成したストレージアカウントを選択し、設定の［アクセスキー］を選択します。
2.　表示されたキーの情報を取得します。
※アクセスキーか、SASトークンの情報が必要です。
※私は、アクセスキーを使うので、後で必要となるシステム環境変数設定のために📝っておきます。
※SASトークンを使う場合は、[SASと接続文字列を生成する]を選択し、出力された[SASトークン]の情報を📝っておいてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/50ec2fc4-43fb-7548-a466-1033e3c9fb27.png)

**ストレージSASトークンの取得**
**※ストレージSASトークンとは？**
コンテナーへのアクセス許可、特定ファイルへのアクセス許可などの制御が可能。
1. 作成したストレージアカウントを選択し、設定の［Shared Access Signature］を選択します。
2. 詳細情報に以下内容を設定します。
　　・使用できるサービス　　　　：BLOB
　　・使用できるリソースの種類　：コンテナー、オブジェクト
　　・与えられているアクセス許可：読み取り、書き込み
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/13231f64-8eba-40d0-18f1-a07cdb0efec3.png)



####**③コンテナーの作成**
作成したストレージアカウントを選択し、Blob serviceの［コンテナー］を選択します。
［＋コンテナー］で新規作成します。
※「sugimondemo」というコンテナー名にしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4ebe7da6-6244-ed2b-a0b3-723f4772609a.png)

以上で、Azure側の設定は完了です！

#　環境準備（HULFTのインストール）

ここからはHULFTのインストールと設定をしてみます。

**■HULFT8 for Windows のインストール**
配信側HULFT（ホスト名：HULFT-SEND）と集信側HULFT（ホスト名：HULFT-RECV）それぞれにHULFTをインストールします。
インストーラ（setup.exe）を実行し、セットアップウィザードに従ってインストールを行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/542f48d7-c26a-186a-9e4a-97fd3f247416.png)
シリアル番号とプロダクトキーの設定をして、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/56d0a17c-3405-94c3-a664-f7664e556b62.png)
標準インストールをすれば完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/e63eeba1-3e2d-d76e-4ce0-bb8c1fcfedda.png)

以上で、HULFTのインストールは完了です。

#　環境準備（クラウドストレージオプションのインストール）
続いて、集信側HULFT（ホスト名：HULFT-RECV）にクラウドストレージオプションをインストールします。
インストーラ（setup.exe）を実行し、セットアップウィザードに従ってインストールします。
※オプションを付けたいHULFTがデフォルトの値と違う場合は、対象のパスを指定して実行しください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/86529411-9445-0036-aaaa-911aa9b77231.png)
「Installation completed successfully.」というメッセージが出れば、インストールOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/27b1772a-bb64-3cdc-3c96-cfa18c11f8a4.png)

**■システム環境変数の編集**
Blob Storageへのアップロード機能を利用するには、システム環境変数の設定が必要です。
※環境変数は、［スタート］-［設定］で検索してシステム環境変数設定画面を開いてます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/f666d21e-8fff-d376-579e-cb91e8b41ee5.png)
以下のシステム環境変数を事前に設定します。
　　・AZURE_STORAGE_ACCOUNT＜ストレージアカウント名＞
　　・AZURE_STORAGE_KEY＜ストレージキー＞　※
　　・AZURE_STORAGE_SAS_TOKEN＜ストレージSASトークン＞　※
　　※どちらか片方を必ず設定しておく必要があります。
　　　両方設定されている場合は、AZURE_STORAGE_SAS_TOKENが使用されます。　
今回は、AZURE_STORAGE_KEYを使用します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4b043ae3-f24e-52d8-ad9a-eb5b04c1b1a1.png)

**■OSの再起動**
システム環境変数を新規で作成したので、OSを再起動します。

#　配信側HULFTの事前準備（ファイル転送するために）

**事前準備**
　　・通信時に名前解決できるように、OSのHOSTSファイルに集信側ホストのホスト名を追記。
　　（例）　IPアドレス　　HULFT-RECV

　　・配信するファイルを準備。（今回は、C:\hulft\snd\test.txt）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1bbd7160-53d6-d607-b0e9-307253e2f379.png)

**■HULFT（HULFT-SEND）の設定**
HULFT管理画面の［システム管理］-[詳細ホスト情報]から設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/cfbc5629-9001-1d8a-dc31-01d096aa8db9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4c3615b7-48b7-ce78-26e3-629e78d892f7.png)
HULFT管理画面の[システム管理]-[転送グループ情報]から設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a98ec0f8-28d8-1861-f8e1-c6d864d87b07.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/6cdd7cc9-26f5-7a0f-980d-4c7c196dabcd.png)
HULFT管理画面の[システム管理]-[配信管理情報]から設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/37436ae9-90ab-df7a-6126-8f4bfdde3fac.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/74848cf3-af97-a71b-700c-6914859fc339.png)

以上で、配信側HULFTの設定は完了です！

**■集信側HULFTの設定**
引き続き、集信側HULFTの設定をします。
※配信側HULFTと同様に、事前に通信時に名前解決できるようOSのHOSTSファイルに配信側HULFTのホスト名を追記しておいてください。



HULFT管理画面の[システム管理] - [詳細ホスト情報]から設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/99757eb6-1f84-8fac-5de2-3604dae31742.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d0e1d91a-5ceb-7dda-7ede-708fe683a3fc.png)
HULFT管理画面の[システム管理] - [集信管理情報]から設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4e51f58d-10da-b566-cbc8-4608345bcb23.png)
集信ファイル名を「bs://オブジェクト名」の形式にしているのが注意点です！
また、現仕様では、異常時の処置は「復元」、集信形態は「単一集信」、世代管理は「しない」のみ選択可能です。登録モードは、「新規作成」「置き換え」のみ選択可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/fa2404e4-6400-dd4f-2071-1374b8fede17.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/4136d43b-699f-05b7-1272-584d488c3be6.png)
これでやっと準備が整いました。
クラウドにデータ転送ってことでしたけど、HULFTの通常の設定をしているだけで、特に意識せずここまで設定できましたね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/61285d8a-da9d-7a9d-c844-b95df443adc9.png)


#AzureのBlob Storageにファイル転送してみる
いよいよ、ファイル転送してみます！配信側HULFTの管理画面から［配信要求］を行います。
HULFT管理画面の[システム管理]-[配信管理情報]から、登録したファイルID（BLOB01）を右クリックして、［配信要求］を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c262a0e8-cbd8-1689-998f-bbd98e40aa44.png)
配信要求ダイアログが表示されるので、［配信要求］ボタンを押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/54aa0187-e471-de60-a094-f55359f8e929.png)
設定に問題がなければ、配信要求が正常に終了した旨のダイアログが表示され、終了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/1354512f-9e5e-d717-44f5-5aa62b078b95.png)

**■配信側HULFT（HULFT-SEND）の配信状況の確認**
「完了コード」が「000000(00000)」になっていればHULFTの配信は正常終了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b7441eb4-fbda-3edc-31a8-df435256c1da.png)

**■集信側HULFT（HULFT-RECV）の集信状況の確認**
「完了コード」は「000000(00000)」になっていればHULFTの集信は正常終了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b6727066-0d45-166f-224f-15df69fef1cf.png)

**■Azure Blob Storage側の状況確認**
最後に、Azure Portalから対象コンテナ（sugimondemo）の中を確認してみます。
test.txtがアップロードされていることが確認できました。
<img width="838" alt="無題.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/b22c490b-0e09-2c17-57e5-3c2f6607775c.png">
#　更にチャレンジ！！
実は、HULFTにはメッセージを送る機能がありまして、
ファイル名と日付を動的に指定した転送をやってみたいと思います！

※長くなったので次の記事へ続きます・・・
[AzureのBLOBストレージへのファイル転送で、HULFTの動的指定を使ってみた。](https://qiita.com/sugimon/items/ba0866be832a734feec5)
#　最後に
今回は、HULFTのクラウドストレージオプションを使って、AzureのBLOBストレージ転送をしてみましたが、いかがでしたでしょうか。設定自体は特別なことはなく、HULFTの通常設定をしていれば簡単に転送できました！

今回は単純なファイル転送で、正常終了していましたが、エラーが起きた時の挙動も別記事でやってみたいなと思っております！HULFT側でエラー発生時にどういった確認ができるなど、見てみたいですね。
⇒⇒⇒⇒気になってすぐにやってみました。
[HULFTのクラウドストレージオプションでGoogle Cloud Storageにファイル転送してみた](https://qiita.com/sugimon/items/d22971d26b40a26cc81a)

このブログでは、今後も技術の「よろず相談窓口」で相談を受けた内容や、誕生したワザをご紹介していけたらな、と思っています。

これからも是非チェックいただき、宜しければフォローをお願いします。

それでは、また！