アーカイブと抽出の例

次の Compression Module の例は、フォルダーとの間でファイルのアーカイブと抽出を行う方法を示しています。File Connector の ​List​ 操作で、​input​ という名前のフォルダーからすべてのファイルをリストします。次に ​Compress​ 操作で、キーをファイル名に設定し、値をリストされたファイルの値に設定してオブジェクトを生成し、圧縮されたアーカイブを作成します。 その後、​Extract​ 操作で、アーカイブされたファイルを圧縮解除します。次に、​ForEach​ スコープで、抽出された各キー/値ペアを反復処理し、キーをファイル名、値を対応する抽出されたファイルコンテンツとして、ファイルを新しい出力フォルダーに書き込みます。

  1. Studio で ​[Scheduler]​ トリガーをフローにドラッグします。

  2. [Frequency (頻度)]​ を ​15​ に設定し、​[Time unit (時間単位)]​ を ​SECONDS​ に設定します。

  3. [List]​ 操作を ​[Scheduler]​ トリガーの横にドラッグします。

  4. コネクタ設定を追加します。

  5. [Directory path (ディレクトリパス)]​ を ​input​ に設定します。

  6. [Set Payload]​ コンポーネントを ​[List]​ 操作の右にドラッグします。

  7. [Value (値)]​ を次の DataWeave 式に設定します。

output application/java
---
(0 to sizeOf(payload) - 1) as Array
reduce (index, acc={}) ->
acc ++ { (payload[index].attributes.fileName): payload[index].payload}
dataweave
  1. [Archive]​ 操作を ​[Set payload]​ コンポーネントの横にドラッグします。

  2. [Extract]​ 操作を ​[Archive]​ 操作の横にドラッグします。

  3. For Each​ スコープをドラッグします。

  4. [Collection (コレクション)]​ を ​payload​ に設定します。

  5. [Write]​ 操作を ​For Each​ スコープにドラッグします。

  6. [Path (パス)]​ を ​#[output application/json--- "output/" ++ (payload pluck $$)[0]]​ に設定します。

  7. [Content (コンテンツ)]​ を ​[CDATA[#[output application/java --- ( payload pluck $ )[0]]]​ に設定します。

  8. [Logger]​ コンポーネントを ​For Each​ スコープの右にドラッグします。

  9. [Message (メッセージ)]​ を ​output application/json --- payload​ に設定します。

  10. Mule アプリケーションを保存して実行します。

Studio Canvas での Compression Module のアーカイブ抽出フロー

設定 XML​ エディターでは、設定は次のように記述されます。