1

ファイルを (コピーではなく) 移動して、ある SFTP ロケーションから別のロケーションへのルートを設定しようとしています。ソース ファイルが同じ名前の場合、ターゲット ファイルが上書きされないようにしたいと考えています。

私のルートは現在次のようになっています。

from("sftp://camel@server1/Source?password=camel&delete=true").to("sftp://camel@server2/Target?password=camel");

私の問題は、ソース内の以前のファイルと同じ名前の新しいファイルが、server2 内のターゲット ファイルを上書きすることです。ターゲットが既に存在する場合、ターゲットに新しい名前を付けるよう Camel に指示するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

ファイルコンポーネントからFileExist

同じ名前のファイルが既に存在する場合の対処方法。次の値を指定できます: OverrideAppendFailIgnore、およびMove。デフォルトの上書きは、既存のファイルを置き換えます。Append は、コンテンツを既存のファイルに追加します。Fail はGenericFileOperationExceptionをスローし、既存のファイルが存在することを示します。Ignore は問題を黙って無視し、既存のファイルを上書きしませんが、すべて問題ないと想定します。Move オプションにはCamel 2.10.1以降が必要であり、対応するmoveExistingオプションも構成する必要があります。オプションeagerDeleteTargetFileファイルを移動する場合の処理​​を制御するために使用でき、既存のファイルが既に存在する場合、そうでない場合は移動操作が失敗します。移動オプションは、ターゲット ファイルを書き込む前に、既存のファイルを移動します。

したがって、例外をスローしてキャッチし、別の名前で移動できます。

于 2013-04-12T08:37:44.560 に答える