Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerCompression Module では、一連のエントリを新しいアーカイブファイルに圧縮できる Archive 操作と、アーカイブファイルを表すコンテンツを圧縮解除できる Extract 操作が提供されます。
入力ストリームペイロードを指定すると、Archive 操作では、すべてのペイロードエントリを Zip 形式の新しいアーカイブファイルに圧縮できます。この操作では、圧縮する値を特定するマップを受け取ります。その後、各エントリを受け取ります。各エントリは、DataWeave 式で指定したエントリ名を持つ圧縮されたアーカイブファイル内に配置されます。
Studio で、Archive 操作をフローにドラッグします。
圧縮するエントリの各名前をキーとして定義し、そのエントリのコンテンツをその値として定義する DataWeave スクリプトに [Entries (エントリ)] を設定します。たとえば、次のように定義します。
{
summary.pdf: vars.summary,
'details/result_001.pdf': vars.file1
'details/result_002.pdf': vars.file2
}
dataweave
設定 XML エディターでは、設定は次のように記述されます。
<compression:archive>
<compression:entries>
#[
{
summary.pdf: vars.summary,
'details/result_001.pdf': vars.file1
'details/result_002.pdf': vars.file2
}
]
</compression:entries>
<compression:archiver>
<compression:zip-archiver/>
</compression:archiver>
</compression:archive>
xml
結果のアーカイブには 3 つのエントリが含まれます。ルートレベルで配置されている summary.pdf
と、details
ディレクトリに配置されている result_001.pdf
および result_002.pdf
です。
+- content.zip
| \- summary.pdf
| \+ details
| \- result_001.pdf
| \- result_002.pdf
details/result_001.pdf
など、エントリの名前の中にあるスラッシュ /
はディレクトリの分離を示します。すべての名前が調べられ、アーカイブ内のディレクトリが作成されます。
DataWeave 式を使用して Archive 操作への入力を作成する場合、DataWeave 式で、Java マップオブジェクトをビルドするために使用するオブジェクトを出力する必要があります。アーカイブにオブジェクト全体を追加するための一意のキーを定義します。 |
アーカイブツール戦略では、複数のエントリを 1 つのアーカイブに圧縮します。Zip アーカイブツール戦略では、Zip 形式を使用してコンテンツを圧縮する必要があることが宣言されます。Studio では [Archiver (アーカイブツール)] 項目はデフォルトで設定されます。4 GB を超えるファイルとバイト配列をアーカイブするには、[Force ZIP64 (ZIP64 を強制)] 項目を選択します。
Studio で、フローから [Archive] 操作を選択します。
[Entries (エントリ)] 項目を、たとえば、次のような式に設定します。
output application/java
---
(0 to sizeOf(payload) - 1) as Array
reduce (index, acc={}) ->
acc ++ { (payload[index].attributes.fileName): payload[index].payload}
DataWeave
[Force ZIP64 (ZIP64 を強制)] を選択します。
[Configuration XML (設定 XML)] エディターで、zip-archiver
および forceZip64
の設定は次のように記述されます。
<compression:archive doc:name="Archive">
<compression:entries>
<![CDATA[#[output application/java
---
(0 to sizeOf(payload) - 1) as Array
reduce (index, acc={}) ->
acc ++ { (payload[index].attributes.fileName): payload[index].payload}]]]>
</compression:entries>
<compression:archiver>
<compression:zip-archiver forceZip64="true"/>
</compression:archiver>
</compression:archive>
xml
Extract 操作では、いずれかの圧縮形式でアーカイブを表しているコンテンツを圧縮解除できます。アーカイブファイルのエントリはオブジェクトとして返され、各オブジェクトにはそのエントリ名でアクセスできます。
Studio で、フローから [Extract] 操作を選択します。
[Compressed (圧縮済み)] 項目を vars.archive
に設定します。
設定 XML エディターでは、設定は次のように記述されます。
<compression:extract>
<compression:compressed>#[vars.archive]</compression:compressed>
<compression:extractor>
<compression:zip-extractor/>
</compression:extractor>
</compression:extract>
xml
ここでは、次の構造を含む 3 つのエントリが含まれるアーカイブを圧縮解除するとします。
+- Archive
| \- summary.pdf
| \+ details
| \- result_001.pdf
| \- result_002.pdf
この場合、各エントリの抽出したコンテンツに payload['summary.pdf']
または payload.details['result_001.pdf']
を使用してアクセスできます。
抽出ツール戦略では、特定の形式で圧縮されている複数のエントリを含むアーカイブを圧縮解除します。 Zip アーカイブ戦略では、Zip 形式を使用してコンテンツを抽出する必要があることが宣言されます。Studio では [Extractor (抽出ツール)] 項目はデフォルトで設定されます。
設定 XML エディターでは、設定は次のように記述されます。
<compression:zip-archiver/>
xml