HOMERSSサイトマッププロフィールお問い合せ

2006年9月21日

(復興作業)FTP サーバー Apache Ftpserver 拡張機能のメモ

Apache Ftpsever の拡張機能のメモが出てきたので、そのまま記しておく。

せっかくの JAVA で書かれたオープンソースであることから、サーバーの機能拡張にトライした。仕事でもこれを使っていることから、サーバーがファイルを受信した時に、①バッチプログラムを起動する機能、②メール送信するプラグイン機能、を付け加えた。

 

(Ⅰ) 全体の流れ

  1. サーバーはファイルを受信した時の流れを示す制御ファイルを持つ (process.xml)
  2. バッチ起動用ファイルを受信した時、サーバーは制御ファイルに登録されているバッチプログラムを、①FTPユーザー名、②受信ファイルの絶対パス名、を与えて起動する
  3. メール.xml ファイル を受信した時、サーバーはメール.xml にしたがって制御ファイルに登録されている送信MAX容量の範囲であれば送信する (複数宛先、複数添付ファイル可)
  4. ログについては、①FTP関連ログはFTPサーバーをインストールした apps/ftpserver/logs/server-ftp.log に、②プラグイン関連ログは bin/log4j.properties に設定されたファイルに、書く
  5. エラーについては上記2ファイルにログが残されるが、同時にメール.xml に起因するエラーは送信者にその旨を返信する
  6. 最後に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

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)