2006年9月21日
(復興作業)FTP サーバー Apache Ftpserver 拡張機能のメモ
せっかくの JAVA で書かれたオープンソースであることから、サーバーの機能拡張にトライした。仕事でもこれを使っていることから、サーバーがファイルを受信した時に、①バッチプログラムを起動する機能、②メール送信するプラグイン機能、を付け加えた。
(Ⅰ) 全体の流れ
- サーバーはファイルを受信した時の流れを示す制御ファイルを持つ (process.xml)
- バッチ起動用ファイルを受信した時、サーバーは制御ファイルに登録されているバッチプログラムを、①FTPユーザー名、②受信ファイルの絶対パス名、を与えて起動する
- メール.xml ファイル を受信した時、サーバーはメール.xml にしたがって制御ファイルに登録されている送信MAX容量の範囲であれば送信する (複数宛先、複数添付ファイル可)
- ログについては、①FTP関連ログはFTPサーバーをインストールした apps/ftpserver/logs/server-ftp.log に、②プラグイン関連ログは bin/log4j.properties に設定されたファイルに、書く
- エラーについては上記2ファイルにログが残されるが、同時にメール.xml に起因するエラーは送信者にその旨を返信する
- 最後にFTPサーバーとしての受信完了メッセージを返す (バッチプログラムは別プロセスで起動することから直ちにメッセージを返す)
(Ⅱ) 制御ファイル (process.xml) について
以下の制御文を bin/process.xml として保存
----- process.xml
<?xml version="1.0" encoding="utf-8" ?>
<process-definition>
<debug>off</debug> --> on でメール送信デバッグログが吐き出される
<hostname>localhost</hostname> --> SMTPサーバーの指定
<holders>
<holder>
<name>batch/program</name> --> FTPホーム下のディレクトリー名
<batch>/etc/bin/test.sh</batch> --> 起動するバッチプログラム
<email>
<exec></exec>
<size></size>
</email>
</holder>
<holder>
<name>public/mail</name>
<batch></batch>
<email>
<exec>yes</exec> --> yes でメール送信
<size>3000</size> --> 添付ファイルも含めた最大量(Kバイト)
</email>
</holder>
</holders>
</process-definition>
----- file end
- プラグインは該当するディレクトリーにファイルを受信したときに働く
- バッチプログラムとメール送信を併用する用途は、プログラムを起動したことをメールで通知するようなケース
- process.xml の変更によるFTPサーバーの再起動は不要
(Ⅲ) メール.xml について
以下のようなメール.xml を process.xml で設定されたディレクトリーにFTPアップロードする。
例1)オープン系システムの場合
----- aaaaaaa.xml
<?xml version="1.0" encoding="shift_jis" ?> --> xml 宣言文
<email>
<subject>お知らせ</subject> --> メールの題名
<from> --> 送信者
<address>y-taro@yahoo.co.jp</address>
<personal>山田 太郎</personal>
</from>
<to> --> 宛先(複数可)
<address>y-hanako@google.co.jp</address>
<personal>山田 花子</personal>
</to>
<file>public/test.doc</file> --> 添付ファイル(複数可、URL可)
<file>https://www.yahoo.co.jp/test2.doc</file>
<text> --> メール本文
こんにちは。
ワシントン州 山田太郎
</text>
</email>
----- file end
例2)メイン・フレームの場合
----- AAAAAAA.XML
<EMAIL>
<SUBJECT>お知らせ</SUBJECT>
<FROM>
<ADDRESS>y-taro@yahoo.co.jp</ADDRESS> --> 全角文字
<PERSONAL>山田 太郎</PERSONAL>
</FROM>
<TO>
<ADDRESS>y-hanako@google.co.jp</ADDRESS> --> 全角文字
<PERSONAL>山田 花子</PERSONAL>
</TO>
<FILE>public/test.doc</FILE> --> 全角文字
<FILE>http://www.yahoo.co.jp/test2.doc</FILE> --> 全角文字
<TEXT>
こんにちは。
ワシントン州 山田太郎
</TEXT>
</EMAIL>
----- file end
(注)メイン・フレームの場合は英小文字が使えないことから、①xml宣言文を外し、②英小文字が必要な箇所は全角文字で書く。(サーバーサイドで対応)
投稿者: 管理者 日時: 2006年9月21日 20:31 | パーマリンク |TOPページへ ▲画面上へ
トラックバック
このエントリーのトラックバックURL:
https://bit-consul.net/cgi-bin/MT/mt-tb.cgi/29