ファイルコネクタを使用してファイルを書き込む方法

Write 操作はファイル、FTP、および SFTP コネクタで使用できます。これらのコネクタでは、この操作によりコンテンツが特定のパスにオンデマンドで書き込まれます。サポートされる一般的な使用事例を次に示します。

埋め込み DataWeave 変換

デフォルトでは、コネクタはメッセージペイロードに含まれるものをすべて書き込みます。

例: ファイルコネクタ
<file:write path="output.csv" />

ただし、ペイロードの形式が異なる (CSV ではないなど) ため、書き込む前に形式を変換する必要がある場合はどうしますか? Write 操作の前に Transform コンポーネントを配置した場合、メッセージペイロードが変更され、Write 操作の後に配置した操作に影響します。

この望ましくない影響を回避するには、変換を Write 操作の内部に配置して、送信中のメッセージに副次的影響を生じずに、書き込まれるコンテンツを生成できます。

次の例では、ファイルコネクタを使用してコンテンツを書き込みます。

例: ファイルの Write 操作内での変換
<file:write path="output.csv">
  <file:content>#[%dw 2.0
                  output application/csv
                  ---
                  payload.customers.email
                ]
  </file:content>
</file:write>

ディレクトリへの書き込み

以下の例の ab、または c ディレクトリのいずれかが存在しない場合、デフォルトでは Write 操作は失敗します。ただし、createParentDirectoriestrue に設定した場合、コネクタは、欠落しているディレクトリを自動的に作成します。

例: ファイルコネクタによるディレクトリへの書き込み
<file:write path="a/b/c/myFile.txt" />

既存のファイルへの書き込み

ファイルにコンテンツを書き込む場合に使用できるいくつかのファイル書き込みモードがあります。

  • OVERWRITE: ファイルが存在する場合、ファイルを完全に上書きします。

  • APPEND: ファイルが存在する場合、コンテンツを既存のファイルの最後に追加します。

  • CREATE_NEW: 新しいファイルを作成します。ファイルがすでに存在する場合、エラーになります。

ロック

この Write 操作では、Read 操作に似たロックがサポートされます。主な違いは、Write 操作の終了後にロックが自動的にリリースされることです。

Was this article helpful?

💙 Thanks for your feedback!