111.12. ディレクトリーを段階的に変更する
Camel FTP は、ファイルの消費時 (ダウンロードなど) またはファイルの生成時 (アップロードなど) にディレクトリーをトラバースするという点で、2 つのモードで動作できます。
- stepwise
- 段階的ではない
状況とセキュリティーの問題に応じて、どちらかを選択することを推奨します。ステップワイズを使用する場合にのみファイルをダウンロードできる Camel エンドユーザーもいれば、そうでない場合にのみダウンロードできる Camel エンドユーザーもいます。少なくとも、選択する選択肢があります (Camel 2.6 以降)。
Camel 2.0 - 2.5 にはモードが 1 つしかなく、それは次のとおりです。
- 2.5 より前のバージョンは段階的ではありません
- 2.5 は段階的です
Camel 2.6 以降では、動作を制御するために使用できる stepwise
オプションがあります。
ディレクトリーの段階的な変更は、ほとんどの場合、ユーザーがそのホームディレクトリーに限定されていて、ホームディレクトリーが "/"
として報告されている場合にのみ機能することに注意してください。
それらの 2 つの違いは、例を使用して最もよく説明されています。ファイルをトラバースしてダウンロードする必要があるリモート FTP サーバーに次のディレクトリー構造があるとします。
/ /one /one/two /one/two/sub-a /one/two/sub-b
そして、サブ a (a.txt) とサブ b (b.txt) フォルダーのそれぞれにファイルがあることを確認します。
111.12.1. stepwise=true の使用 (デフォルトモード)
TYPE A 200 Type set to A PWD 257 "/" is current directory. CWD one 250 CWD successful. "/one" is current directory. CWD two 250 CWD successful. "/one/two" is current directory. SYST 215 UNIX emulated by FileZilla PORT 127,0,0,1,17,94 200 Port command successful LIST 150 Opening data channel for directory list. 226 Transfer OK CWD sub-a 250 CWD successful. "/one/two/sub-a" is current directory. PORT 127,0,0,1,17,95 200 Port command successful LIST 150 Opening data channel for directory list. 226 Transfer OK CDUP 200 CDUP successful. "/one/two" is current directory. CWD sub-b 250 CWD successful. "/one/two/sub-b" is current directory. PORT 127,0,0,1,17,96 200 Port command successful LIST 150 Opening data channel for directory list. 226 Transfer OK CDUP 200 CDUP successful. "/one/two" is current directory. CWD / 250 CWD successful. "/" is current directory. PWD 257 "/" is current directory. CWD one 250 CWD successful. "/one" is current directory. CWD two 250 CWD successful. "/one/two" is current directory. PORT 127,0,0,1,17,97 200 Port command successful RETR foo.txt 150 Opening data channel for file transfer. 226 Transfer OK CWD / 250 CWD successful. "/" is current directory. PWD 257 "/" is current directory. CWD one 250 CWD successful. "/one" is current directory. CWD two 250 CWD successful. "/one/two" is current directory. CWD sub-a 250 CWD successful. "/one/two/sub-a" is current directory. PORT 127,0,0,1,17,98 200 Port command successful RETR a.txt 150 Opening data channel for file transfer. 226 Transfer OK CWD / 250 CWD successful. "/" is current directory. PWD 257 "/" is current directory. CWD one 250 CWD successful. "/one" is current directory. CWD two 250 CWD successful. "/one/two" is current directory. CWD sub-b 250 CWD successful. "/one/two/sub-b" is current directory. PORT 127,0,0,1,17,99 200 Port command successful RETR b.txt 150 Opening data channel for file transfer. 226 Transfer OK CWD / 250 CWD successful. "/" is current directory. QUIT 221 Goodbye disconnected.
stepwise が有効になるとわかるように、CD xxx を使用してディレクトリー構造をトラバースします。
111.12.2. stepwise=false の使用
230 Logged on TYPE A 200 Type set to A SYST 215 UNIX emulated by FileZilla PORT 127,0,0,1,4,122 200 Port command successful LIST one/two 150 Opening data channel for directory list 226 Transfer OK PORT 127,0,0,1,4,123 200 Port command successful LIST one/two/sub-a 150 Opening data channel for directory list 226 Transfer OK PORT 127,0,0,1,4,124 200 Port command successful LIST one/two/sub-b 150 Opening data channel for directory list 226 Transfer OK PORT 127,0,0,1,4,125 200 Port command successful RETR one/two/foo.txt 150 Opening data channel for file transfer. 226 Transfer OK PORT 127,0,0,1,4,126 200 Port command successful RETR one/two/sub-a/a.txt 150 Opening data channel for file transfer. 226 Transfer OK PORT 127,0,0,1,4,127 200 Port command successful RETR one/two/sub-b/b.txt 150 Opening data channel for file transfer. 226 Transfer OK QUIT 221 Goodbye disconnected.
stepwise を使用しない場合にわかるように、CD 操作はまったく呼び出されません。