# オブジェクトをダウンロードした後にバケットから削除したい

ファイルの転送後の処理で、転送関連情報の取得コマンドを使用して転送に関する情報を取得し、取得した情報をCLIにて使用する例を説明します。

ここでは、配信側ホストがファイルの転送後に、CLIの削除コマンドを使用してストレージからダウンロードしたファイル（オブジェクト）を削除する例を紹介します。

転送関連情報の取得コマンドで以下の転送情報を取得し、CLIの削除コマンドにてバケットからオブジェクトを削除します。

- 転送で使用された「バケット名」

- 転送で使用された「オブジェクト名」

また同様の方法で、他の転送関連情報を取得し、各種ジョブで使用することも可能です。

Amazon S3を例としていますが、オブジェクトストレージに合わせたコマンドを使用することで、ほかのオブジェクトストレージでも登録できます。

Amazon S3の配信ストレージ管理情報が以下の内容で登録されている前提で説明します。

表D.18 配信ストレージ管理情報の設定値の例

配信ストレージ管理情報の項目名 | 設定値 | 登録有無
--- | --- | ---
配信ストレージ管理情報ID | bucket01 | ◎
バケット名 | 未設定 | ―
ストレージタイムアウト | 未設定 | ―
1転送あたりの最大並列数 | 未設定 | ―
パートサイズ | 未設定 | ―
使用リージョン（*1） | us-east-1 | ◎
エンドポイントのURL（*1） | 未設定 | ―
ストレージ認証情報ID | 未設定 | ―

◎ | : | 設定値を変更して登録する項目
― | : | 設定値を登録しない項目
*1 | : | Amazon S3の場合のみ設定できます。

転送を行う配信管理情報の正常時ジョブIDにファイル（オブジェクト）を削除するジョブのジョブID登録することで、ファイルの転送後にストレージからダウンロードを実行したファイル（オブジェクト）を削除することができます。

以下の手順で管理情報の登録を行います。

1. ジョブ起動情報に登録する「実行ファイル」を作成します。

   ジョブ起動情報に登録する実行ファイルでは、以下の処理を行います。

   1. 転送関連情報の取得コマンド（utls3inforef）と起動ジョブの環境変数「FILENM」を使用して以下の転送情報を取得します。

   - バケット名

   - オブジェクト名

   2. a. で取得した「バケット名」と「オブジェクト名」をCLIに指定して、オブジェクトの削除を行います。

   下記に実行ファイルの例を記載します。

   Windows：バッチファイルの例

       @echo off
       set FILENAME=%$FILENM%
       for /f "usebackq delims=" %%V in (`"C:\HULFT Family\hulft\bin\plugins_utls\utls3inforef.exe" -t snd -f %FILENAME% -k bucket`) do set BUCKET=%%V
       for /f "usebackq delims=" %%V in (`"C:\HULFT Family\hulft\bin\plugins_utls\utls3inforef.exe" -t snd -f %FILENAME% -k object`) do set OBJECT=%%V
       C:\Program Files\Amazon\AWSCLI\bin\aws.exe s3api delete-object --bucket %BUCKET% --key %OBJECT%

   Linux：shellの例

       #!/bin/sh
       export PATH="$PATH":"$HULEXEP"/plugins_utls
       BUCKET="$(utls3inforef -t snd -f "$FILENM" -k bucket)"
       OBJECT="$(utls3inforef -t snd -f "$FILENM" -k object)"
       aws s3api delete-object --bucket "$BUCKET" --key "$OBJECT"

   転送関連情報の取得コマンドの詳細は、「転送関連情報の取得コマンド」を参照してください。

2. 1.で作成した「実行ファイル」をジョブ起動情報に登録します。

   ここでは、以下のように登録します。

   表D.19 ジョブ起動情報の設定値の例

   項目名 | 設定値
   --- | ---
   ジョブID | OBJDELETE
   起動ジョブ | 1.で作成した「実行ファイル」

   ジョブ起動情報の登録については、以下を参照してください。

   HULFT10 for Windows オペレーション マニュアル : ジョブ起動情報

   HULFT10 for Linux/AIX オペレーション マニュアル : ジョブ起動情報

3. 2.で登録したジョブIDを配信管理情報の正常時ジョブIDに登録します。

   ここでは、以下のように登録します。

   表D.20 配信管理情報の設定値の例

   項目名 | 設定値
   --- | ---
   ファイルID | OBJDELETE
   配信ファイル名 | 1.で作成した「実行ファイル」
   正常時ジョブID | OBJDELETE

   配信管理情報の登録については、以下を参照してください。

   HULFT10 for Windows オペレーション マニュアル : 配信管理情報

   HULFT10 for Linux/AIX オペレーション マニュアル : 配信管理情報

これで、ファイルの転送が成功した際、転送後のジョブにてファイル（オブジェクト）を削除するための設定が完了しました。

ファイルID「DOWNLOAD01」の転送を行うと、転送後のジョブの処理で配信ファイル（オブジェクト）をバケットから削除します。

なお、上記の例の場合、転送時の環境変数は以下のとおりです。

表D.21 環境変数の値

環境変数 | 設定値
--- | ---
FILENM（FILENAME） | s3://bucket01/object01
BUCKET | bucket01
OBJECT | object01

転送に関する他の項目を取得したい場合、取得する項目のキーについては以下を参照してください。

「転送関連情報の取得コマンド」