5.8. File
5.8.1. camel-file-kafka-connector シンク設定 リンクのコピーリンクがクリップボードにコピーされました!
コネクターの説明: ファイルの読み取りと書き込み。
camel-file-kafka-connector をシンクとして使用する場合、以下の Maven 依存関係を使用してコネクターをサポートするようにしてください。
<dependency>
<groupId>org.apache.camel.kafkaconnector</groupId>
<artifactId>camel-file-kafka-connector</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel Kafka connector version -->
</dependency>
Kafka コネクションでこのシンクコネクターを使用するには、以下の connector.class を設定する必要があります。
connector.class=org.apache.camel.kafkaconnector.file.CamelFileSinkConnector
camel-file シンクコネクターは、以下に示す 26 のオプションをサポートします。
| 名前 | 説明 | デフォルト | 必要性 | 優先順位 |
|---|---|---|---|---|
| camel.sink.path.directoryName | 開始ディレクトリー | null | true | HIGH |
| camel.sink.endpoint.charset | このオプションは、ファイルのエンコーディングを指定するために使用されます。コンシューマーでこれを使用して、ファイルのエンコーディングを指定できます。これにより、Camel は、ファイルコンテンツがアクセスされている場合にファイルコンテンツをロードする必要がある charset を知ることができます。ファイルを書き込む場合も同様に、このオプションを使用して、ファイルを書き込む charset を指定できます。ファイルを書き込むとき、Camel はメッセージの内容をメモリーに読み込んで、データを設定された charset に変換できるようにする必要があることに注意してください。つまり、メッセージが大きい場合は、これを使用しないでください。 | null | false | MEDIUM |
| camel.sink.endpoint.doneFileName | Producer: 指定された場合、元のファイルが書き込まれると、Camel は 2 番目の完了ファイルを書き込みます。完了ファイルは空になります。このオプションは、使用するファイル名を設定します。固定の名前を指定できます。または、動的プレースホルダーを使用することもできます。完了ファイルは、常に元のファイルと同じフォルダーに書き込まれます。Consumer: 指定すると、Camel は完了ファイルが存在する場合にのみファイルを消費します。このオプションは、使用するファイル名を設定します。固定の名前を指定できます。または、動的なプレースホルダーを使用できます。完了ファイルは、常に元のファイルと同じフォルダーにあると想定されます。$\\{file.name} と $\\{file.name.next} のみが動的プレースホルダーとしてサポートされています。 | null | false | MEDIUM |
| camel.sink.endpoint.fileName | File Language などの式を使用して、ファイル名を動的に設定します。コンシューマーの場合は、ファイル名フィルターとして使用されます。プロデューサーの場合、書き込むファイル名を評価するために使用されます。式が設定されている場合は、CamelFileName ヘッダーよりも優先されます。(注: ヘッダー自体を式にすることもできます)。式オプションは String タイプと Expression タイプの両方をサポートします。式が String タイプである場合、これは常にファイル言語を使用して評価されます。式が Expression タイプである場合、指定された Expression タイプが使用されます。これにより、たとえば OGNL 式を使用できます。コンシューマーの場合、これを使用してファイル名をフィルターリングできるため、たとえば、ファイル言語構文 mydata-$\\{date:now:yyyyMMdd}.txt を使用して今日のファイルを消費できます。プロデューサーは、既存の CamelFileName ヘッダーよりも優先される CamelOverruleFileName ヘッダーをサポートします。CamelOverruleFileName は一度だけ使用されるヘッダーであり、CamelFileName を一時的に保存して後で復元する必要がなくなるため、簡単になります。 | null | false | MEDIUM |
| camel.sink.endpoint.appendChars | ファイルの書き込み後に文字 (テキスト) を追加するために使用されます。たとえば、既存ファイルを書き込んで追加する際に、新しい行やその他のセパレーターを追加するために使用できます。改行 (slash-n または slash-r) またはタブ (slash-t) 文字を指定するには、slash-slash-n のように追加のスラッシュでエスケープします。 | null | false | MEDIUM |
| camel.sink.endpoint.fileExist | 同じ名前のファイルがすでに存在する場合のアクション。デフォルトの上書きは、既存のファイルを置き換えます。- 追加 - 既存のファイルにコンテンツを追加します。- 失敗 - 既存のファイルがすでに存在することを示す GenericFileOperationException を出力します。- 無視 - 問題を黙って無視し、既存のファイルを上書きしませんが、すべて問題ないと想定します。- 移動 - オプションを設定するには、moveExisting オプションも使用する必要があります。オプション eagerDeleteTargetFile を使用して、ファイルを移動する際に既存ファイルが存在する場合に何をすべきか制御でき、そうでない場合は移動操作が失敗します。移動オプションは、ターゲットファイルを書き込む前に、既存のファイルを移動します。- TryRename は、tempFileName オプションが使用されている場合にのみ適用されます。これにより、存在チェックを実行せずに、一時的なファイル名から実際のファイル名への変更を試みることができます。このチェックは、一部のファイルシステム、特に FTP サーバーでは高速になる場合があります。次のいずれか: [Override] [Append] [Fail] [Ignore] [Move] [TryRename] | "Override" | false | MEDIUM |
| camel.sink.endpoint.flatten | flatten は、ファイル名パスをフラット化して先頭のパスを削除するために使用されるので、ファイル名だけになります。これにより、サブディレクトリーに再帰的に使用できますが、たとえばファイルを別のディレクトリーに書き込む場合、ファイルは単一のディレクトリーに書き込まれます。これをプロデューサーで true に設定すると、CamelFileName ヘッダーのファイル名が先頭パスから削除されます。 | false | false | MEDIUM |
| camel.sink.endpoint.jailStartingDirectory | ファイルの書き込みを開始ディレクトリー (およびサブ) のみに拘束 (制限) するために使用されます。これはデフォルトで有効になっており、Camel は外部ディレクトリーにファイルを書き込むことができません (そのままでセキュアにするため)。無効にすると、親フォルダーやルートフォルダーなど、開始ディレクトリー以外のディレクトリーにファイルを書き込むことができます。 | true | false | MEDIUM |
| camel.sink.endpoint.lazyStartProducer | 最初のメッセージでプロデューサーをレイジーに起動すべきかどうか。レイジーに起動することで、起動時にプロデューサーが失敗し、それによりルートが失敗する可能性がある状況で、CamelContext およびルートの起動を許可します。レイジーな起動を延期すると、Camel のルーティングエラーハンドラー経由でメッセージのルーティング中に起動の失敗を処理できます。最初のメッセージが処理されるときに、プロデューサーの作成および起動に若干時間がかかり、合計処理時間が長くなる可能性があることに注意してください。 | false | false | MEDIUM |
| camel.sink.endpoint.moveExisting | fileExist=Move が設定されている場合に使用するファイル名の計算に使用される式 (File 言語など)。ファイルをバックアップサブディレクトリーに移動するには、backup と入力します。このオプションは、file:name、file:name.ext、file:name.noext、file:onlyname、file:onlyname.noext、file:ext、および file:parent の File Language トークンのみをサポートします。FTP コンポーネントでは file:parent がサポートされていないことに注意してください。FTP コンポーネントは、既存のファイルを現在のディレクトリーをベースとする相対ディレクトリーにしか移動できないためです。 | null | false | MEDIUM |
| camel.sink.endpoint.tempFileName | tempPrefix オプションと同じですが、ファイル言語を使用するため、一時ファイル名の命名をより細かく制御できます。tempFilename の場所は、ベース uri のターゲットディレクトリーではなく、オプション 'fileName' の最終的なファイルの場所に相対的です。たとえば、オプション fileName にディレクトリー 接頭辞が含まれている場合: dir/finalFilename の場合、tempFileName はそのサブディレクトリー dir に対して相対的です。 | null | false | MEDIUM |
| camel.sink.endpoint.tempPrefix | このオプションは、一時的な名前を使用してファイルを書き込み、書き込みが完了した後に、その名前を実際の名前に変更するために使用されます。書き込み中のファイルを識別し、(排他的読み取りロックを使用せずに) コンシューマーが進行中のファイルを読み取らないようにするために使用できます。大きなファイルをアップロードするときに FTP でよく使用されます。 | null | false | MEDIUM |
| camel.sink.endpoint.allowNullBody | ファイルの書き込み中に null の本文を許可するかどうかを指定するために使用されます。true に設定すると空のファイルが作成され、false に設定して null の本文をファイルコンポーネントに送信しようとすると、Cannot write null body to file.という GenericFileWriteException が出力されます。fileExist オプションを Override に設定するとファイルは切り捨てられ、append に設定するとファイルは変更されません。 | false | false | MEDIUM |
| camel.sink.endpoint.chmod | プロデューサーによって送信されるファイルパーミッションを指定します。chmod の値は 000 から 777 の間の値である必要があります。0755 のように先頭に数字がある場合は無視します。 | null | false | MEDIUM |
| camel.sink.endpoint.chmodDirectory | 不足しているディレクトリーをプロデューサーが作成するときに使用するディレクトリーパーミッションを指定します。chmod 値は 000 から 777 の間である必要があります。0755 のように先頭に数字がある場合は無視します。 | null | false | MEDIUM |
| camel.sink.endpoint.eagerDeleteTargetFile | 既存のターゲットファイルを積極的に削除するかどうか。このオプションは、fileExists=Override および tempFileName オプションを使用している場合にのみ適用されます。これを使用して、一時ファイルが書き込まれる前にターゲットファイルを削除することを無効化 (false に設定) できます。たとえば、大きなファイルを書き込んで、一時ファイルの書き込み中にターゲットファイルを存在させたい場合があります。これにより、一時ファイルの名前がターゲットファイル名に変更される直前まで、ターゲットファイルは削除されません。このオプションは、fileExist=Move が有効で、既存のファイルが存在する場合に、既存のファイルを削除するかどうかを制御するためにも使用されます。このオプション copyAndDeleteOnRenameFails が false の場合、既存のファイルが存在する場合は例外が出力されます。true の場合、移動操作の前に既存のファイルが削除されます。 | true | false | MEDIUM |
| camel.sink.endpoint.forceWrites | ファイルシステムへの書き込みを強制的に同期するかどうか。たとえばログや監査ログへの書き込みなど、このレベルの保証が必要ない場合はオフにすることでパフォーマンスが向上します。 | true | false | MEDIUM |
| camel.sink.endpoint.keepLastModified | ソースファイル (存在する場合) からの最終変更のタイムスタンプを保持します。Exchange.FILE_LAST_MODIFIED ヘッダーを使用してタイムスタンプを見つけます。このヘッダーには、java.util.Date またはタイムスタンプ付きの long を含めることができます。タイムスタンプが存在し、オプションが有効な場合は、書き込まれたファイルにこのタイムスタンプが設定されます。注記: このオプションは、ファイルプロデューサーにのみ適用されます。このオプションは、ftp プロデューサーでは使用できません。 | false | false | MEDIUM |
| camel.sink.endpoint.moveExistingFileStrategy | fileExist=Move が設定されている場合に使用する特別な命名トークンを持つファイルを移動するために使用されるストラテジー (カスタムストラテジー)。デフォルトでは、カスタムストラテジーが指定されていない場合に使用される実装があります。 | null | false | MEDIUM |
| camel.sink.endpoint.autoCreate | ファイルのパス名に不足しているディレクトリーを自動的に作成します。ファイルコンシューマーの場合は、開始ディレクトリーを作成することを意味します。ファイルプロデューサーの場合、ファイルが書き込まれるディレクトリーを意味します。 | true | false | MEDIUM |
| camel.sink.endpoint.bufferSize | ファイルの書き込みに使用されるバッファーサイズ (バイト単位) (または、ファイルのダウンロードとアップロードに使用される FTP の場合)。 | 131072 | false | MEDIUM |
| camel.sink.endpoint.copyAndDeleteOnRenameFail | ファイルの名前を直接変更できなかった場合に、フォールバックしてファイルのコピーと削除を行うかどうか。このオプションは FTP コンポーネントでは使用できません。 | true | false | MEDIUM |
| camel.sink.endpoint.renameUsingCopy | コピーおよび削除ストラテジーを使用して名前変更操作を実行します。これは主に、通常の名前変更操作が信頼できない環境で使用されます (たとえば、異なるファイルシステムまたはネットワーク間)。このオプションは、遅延が追加された後に限り、コピーおよび削除ストラテジーに自動的にフォールバックする copyAndDeleteOnRenameFail パラメーターよりも優先されます。 | false | false | MEDIUM |
| camel.sink.endpoint.synchronous | 同期処理を厳密に使用するかどうかを設定します。 | false | false | MEDIUM |
| camel.component.file.lazyStartProducer | 最初のメッセージでプロデューサーをレイジーに起動すべきかどうか。レイジーに起動することで、起動時にプロデューサーが失敗し、それによりルートが失敗する可能性がある状況で、CamelContext およびルートの起動を許可します。レイジーな起動を延期すると、Camel のルーティングエラーハンドラー経由でメッセージのルーティング中に起動の失敗を処理できます。最初のメッセージが処理されるときに、プロデューサーの作成および起動に若干時間がかかり、合計処理時間が長くなる可能性があることに注意してください。 | false | false | MEDIUM |
| camel.component.file.autowiredEnabled | 自動ワイヤリングが有効になっているかどうか。これは、コンポーネントで設定される一致するタイプのインスタンスが 1 つあるかどうかを検出するためにレジストリーを検索することで、自動ワイアリングオプションに使用されます (オプションは自動ワイアとマーク付けされる必要があります)。これは、JDBC データソース、JMS 接続ファクトリー、AWS クライアントなどの自動設定に使用できます。 | true | false | MEDIUM |
camel-file シンクコネクターには、すぐに使用できるコンバータはありません。
camel-file シンクコネクターには、すぐに使用できる変換はありません。
camel-file シンクコネクターには、すぐに使用できる集約ストラテジーはありません。