質問
Amazon S3バケット内の特定のディレクトリに存在するファイル名の一覧を実行ログに出力したいです。
回答
Amazon S3バケット内の特定のディレクトリに存在するファイル名の一覧を実行ログに出力する方法について、以下2パターン紹介します。
いずれも、Amazon S3バケット内の特定のディレクトリに存在するファイル名の一覧をするためには[Amazon S3]ファイル/フォルダ一覧取得処理を使用します。
・データログ出力(XML型)処理を使用してログ出力する
・変数代入を使用してファイル名を取得する。
それぞれの処理手順を以下に記載します。
データログ出力(XML型)処理を使用してログ出力する
■処理の概要
データログ出力(XML型)処理前にマッピングを配置し、マッピング内でオブジェクトのタイプがファイルのファイル数分だけファイル名をXMLログとして出力する
■スクリプトのフロー図
■処理の作成手順
-
[Amazon S3]ファイル/フォルダ一覧取得処理
ファイル名の一覧を取得したいディレクトリを[フォルダパス]に指定する。 - マッピングを配置
データフローを1より引く。 -
データログ出力(XML型)処理を配置
[入力データ]は手順2で配置したマッピングを指定する。
※[出力ログレベル]は適宜調整してください。 -
スキーマ編集
手順2で配置したマッピングの出力データのスキーマに、手順1の[Amazon S3]ファイル/フォルダ一覧取得処理と同様のファイル名を出力する属性を設定する。 - マッピング
手順2で配置したマッピング内で以下のようにマッピングする。
・[条件による抽出]ロジック
1番目の入力ハンドラ:手順1の[Amazon S3]ファイル/フォルダ一覧取得処理の[file]要素
2番目の入力ハンドラ:[同じ]ロジック
ロジックの出力:出力データの[file]要素
・[同じ]ロジック
1番目の入力ハンドラ:手順1の[Amazon S3]ファイル/フォルダ一覧取得処理の[file]要素内の[type]属性
2番目の入力ハンドラ:[一行文字列]に「File」を指定した[単一行文字列定数]ロジック
ロジックの出力:[条件による抽出]ロジックの2番目の入力ハンドラ
・ファイル名
入出力の[name]属性同士をつなぐ。
変数代入を使用してファイル名を取得する。
■処理の概要
繰り返し処理(データ件数)の後に変数代入し、代入した内容を実行ログに表示する。
■スクリプトのフロー図
■処理の作成手順
- スクリプト変数
以下の2つのスクリプト変数を準備する (変数名は例)
・Amazon S3オブジェクトの種類を格納するスクリプト変数 ※以降スクリプト変数「FileType」と記載
・ファイル名を格納するスクリプト変数 ※以降スクリプト変数「FileName」と記載 -
[Amazon S3]ファイル/フォルダ一覧取得処理
[フォルダパス]には、ファイル名の一覧を取得したいディレクトリを指定する。 - 繰り返し処理(データ件数)
- 変数代入
手順3の繰り返し処理(データ件数)処理の[type]属性をスクリプト変数「FileType」につなぐ。 - 条件分岐
条件:スクリプト変数「FileType」が[次の値と等しい場合]に「File」を指定する。 - 変数代入
以下のように変数代入処理を作成する
・[スイッチ判定による出力の切り替え]ロジック
条件数:1
1番目の入力ハンドラ:[同じ]ロジック
2番目の入力ハンドラ:手順3の繰り返し処理(データ件数)の[file]要素の[name]属性
3番目の入力ハンドラ:[定数]に「false」を指定した[真偽値定数]ロジック
ロジックの出力:スクリプト変数「FileName」
・[同じ]ロジック
1番目の入力ハンドラ:[一行文字列]に「File」を指定した[単一行文字列定数]ロジック
2番目の入力ハンドラ:手順3の繰り返し処理(データ件数)の[file]要素の[type]属性
ロジックの出力:[スイッチ判定による出力の切り替え]ロジック1番目の入力ハンドラ
コメント
0件のコメント
記事コメントは受け付けていません。