パッケージ org.opengion.fukurou.util

クラス FTPConnect

  • すべての実装されたインタフェース:
    ConnectIF

    public final class FTPConnect
    extends AbstractConnect
    FTPConnect.java は、共通的に使用される FTP関連の基本機能を実装した、クラスです。 これは、org.apache.commons.net.ftp.FTPClient をベースに開発されています。 このクラスの実行には、commons-net-ftp-2.0.jar が必要です。 -host=FTPサーバー -user=ユーザー -passwd=パスワード -remoteFile=FTP先のファイル名 を必須設定します。 -localFile=ローカルのファイル名は、必須ではありませんが、-command=DEL の場合にのみ不要であり、 それ以外の command の場合は、必要です。 -mode=[ASCII/BINARY] は、ファイル転送時に、ファイルの種類によって指定します。 ASCIIモードは、OS毎に異なる改行コードを変換して転送します。BINARYモードは、そのままの姿でやり取りします。 -command=[GET/PUT/DEL] は、FTPサーバーに対しての処理の方法を指定します。 GET:FTPサーバーからローカルにファイル転送します(初期値)。 PUT:ローカルファイルをFTPサーバーに PUT(STORE、SAVE、UPLOAD、などと同意語)します。 DEL:FTPサーバーの指定のファイルを削除します。この場合のみ、-localFile 属性の指定は不要です。 -passive=[true/false] は、パッシブモード(ローカルからサーバーへ接続を張る)を利用する場合に宣言します。 初期値は、true:使用する です。 通常のFTPでは、アクティブモードでファイルをやり取りします。これは、クライアント側が、サーバーソケットを オープンし、指定のポートで待ちうけ状態を作り、FTPサーバー側から接続してもらいます。 一般的な企業内では、ファイアウォールの設定等で、外部からの接続を制限しているケースが多く、アクティブモード では、繋がらない場合が、ほとんどです。 このクラスでは、初期値をパッシブモードにすることで、企業内のファイアウォールのある環境でも 接続できるようにしています。 -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:FTPサーバー)に取り込むファイルのディレクトリが 存在しない場合に、作成するかどうかを指定します(初期値:true)。 通常、FTPサーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。 逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。 引数文字列中に空白を含む場合は、ダブルコーテーション("") で括って下さい。 引数文字列の 『=』の前後には、空白は挟めません。必ず、-key=value の様に 繋げてください。
    形式サンプル:
    FTPConnect -host=FTPサーバー -user=ユーザー -passwd=パスワード -remoteFile=FTP先のファイル名 [-localFile=ローカルのファイル名] [-mode=[ASCII/BINARY] ] [-command=[GET/PUT/DEL] ] [-passive=[true/false] ] -host=FTPサーバー :接続先のFTPサーバーのアドレスまたは、サーバー名 -user=ユーザー :接続するユーザー名 -passwd=パスワード :接続するユーザーのパスワード -remoteFile=FTP先のファイル名 :接続先のFTPサーバー側のファイル名。PUT,GET 関係なくFTP側として指定します。 [-localFile=ローカルのファイル名] :ローカルのファイル名。PUT,GET 関係なくローカルファイルを指定します。 [-port=ポート ] :接続するサーバーのポートを指定します。 [-mode=[ASCII/BINARY] ] :扱うファイルの種類を指定します(初期値:ASCII) [-command=[GET/PUT/DEL] ] :FTPサーバー側での処理の方法を指定します。 GET:FTP⇒LOCAL、PUT:LOCAL⇒FTP への転送です(初期値:GET) DEL:FTPファイルを削除します。 [-passive=[true/false] ] :パッシブモード(ローカルからサーバーへ接続を張る)を利用するかどうか(初期値:true) (false:アクティブモード(通常のFTPの初期値)で通信します。) [-mkdirs=[true/false] ] :受け側ファイル(GET時:LOCAL、PUT時:FTPサーバー)にディレクトリを作成するかどうか(初期値:true) (false:ディレクトリが無ければ、エラーにします。) [-encode=エンコード名 ] :日本語ファイル名などのエンコード名を指定します(初期値:UTF-8) [-timeout=タイムアウト[秒] ] :Dataタイムアウト(初期値:600 [秒]) [-display=[false/true] ] :trueは、検索状況を表示します(初期値:false) [-debug=[false|true] ] :デバッグ情報を標準出力に表示する(true)かしない(false)か(初期値:false[表示しない])
    変更履歴:
    5.1.6.0 (2010/05/01) 新規追加
    バージョン
    5.0
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK5.0,
    • コンストラクタの概要

      コンストラクタ 
      コンストラクタ 説明
      FTPConnect()
      デフォルトコンストラクター
    • メソッドの概要

      すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      protected void actionDEL​(java.lang.String remoteFile)
      command="DEL" が指定されたときの処理を行います。
      protected void actionDELdir​(java.lang.String remoteDir)
      command="DELDIR" が指定されたときの処理を行います。
      protected void actionGET​(java.lang.String localFile, java.lang.String remoteFile)
      command="GET" が指定されたときの処理を行います。
      protected void actionGETdir​(java.lang.String localDir, java.lang.String remoteDir)
      command="GETDIR" が指定されたときの処理を行います。
      protected void actionPUT​(java.lang.String localFile, java.lang.String remoteFile)
      command="PUT" が指定されたときの処理を行います。
      void connect()
      FTPサーバーへの接続、ログインを行います。
      void disconnect()
      FTPサーバーとの接続をクローズします。
      static void main​(java.lang.String[] args)
      このクラスの動作確認用の、main メソッドです。
      void setEncode​(java.lang.String encode)
      日本語ファイル名などのエンコード名を指定します(初期値:UTF-8)。
      void setMode​(java.lang.String mode)
      扱うファイルの種類を指定します (初期値:ASCII)。
      void setPassive​(boolean isPassive)
      パッシブモードを利用するかどうか(true:パッシブ)を設定します(初期値:true)。
      • クラスから継承されたメソッド java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • コンストラクタの詳細

      • FTPConnect

        public FTPConnect()
        デフォルトコンストラクター
        変更履歴:
        6.4.1.1 (2016/01/16) PMD refactoring. It is a good practice to call super() in a constructor
    • メソッドの詳細

      • connect

        public void connect()
        FTPサーバーへの接続、ログインを行います。 このメソッドは、初期化メソッドです。 FTPサーバーへの接続、ログインを行いますので、複数ファイルを転送する ケースでは、最初に1度だけ呼び出すだけです。 接続先を変更する場合は、もう一度このメソッドをコールする必要があります。 (そのような場合は、通常、オブジェクトを構築しなおす方がよいと思います。)
        定義:
        connect インタフェース内 ConnectIF
        定義:
        connect クラス内 AbstractConnect
        変更履歴:
        6.4.2.0 (2016/01/29) ex.printStackTrace() を、ThrowUtil#ogStackTrace(Throwable) に置き換え。
      • disconnect

        public void disconnect()
        FTPサーバーとの接続をクローズします。 ログインされている場合は、ログアウトも行います。 コネクトされている場合は、ディスコネクトします。
        定義:
        disconnect インタフェース内 ConnectIF
        定義:
        disconnect クラス内 AbstractConnect
        変更履歴:
        6.4.2.0 (2016/01/29) ex.printStackTrace() を、ThrowUtil#ogStackTrace(Throwable) に置き換え。
      • actionGET

        protected void actionGET​(java.lang.String localFile,
                                 java.lang.String remoteFile)
                          throws java.io.IOException
        command="GET" が指定されたときの処理を行います。 接続先のFTPサーバー側のファイル名をローカルにダウンロードします。
        定義:
        actionGET クラス内 AbstractConnect
        パラメータ:
        localFile - ローカルのファイル名
        remoteFile - FTP先のファイル名
        例外:
        java.io.IOException - 入出力エラーが発生したとき
      • actionGETdir

        protected void actionGETdir​(java.lang.String localDir,
                                    java.lang.String remoteDir)
                             throws java.io.IOException
        command="GETDIR" が指定されたときの処理を行います。 接続先のFTPサーバー側のディレクトリ以下をローカルディレクトリに階層構造のままダウンロードします。
        定義:
        actionGETdir クラス内 AbstractConnect
        パラメータ:
        localDir - ローカルのディレクトリ名
        remoteDir - FTP先のディレクトリ名
        例外:
        java.io.IOException - 入出力エラーが発生したとき
      • actionPUT

        protected void actionPUT​(java.lang.String localFile,
                                 java.lang.String remoteFile)
                          throws java.io.IOException
        command="PUT" が指定されたときの処理を行います。 ローカルファイルを、接続先のFTPサーバー側にアップロードします。
        定義:
        actionPUT クラス内 AbstractConnect
        パラメータ:
        localFile - ローカルのファイル名
        remoteFile - FTP先のファイル名
        例外:
        java.io.IOException - 入出力エラーが発生したとき
      • actionDEL

        protected void actionDEL​(java.lang.String remoteFile)
                          throws java.io.IOException
        command="DEL" が指定されたときの処理を行います。 接続先のFTPサーバー側のファイル名を削除します。
        定義:
        actionDEL クラス内 AbstractConnect
        パラメータ:
        remoteFile - FTP先のファイル名
        例外:
        java.io.IOException - 入出力エラーが発生したとき
      • actionDELdir

        protected void actionDELdir​(java.lang.String remoteDir)
                             throws java.io.IOException
        command="DELDIR" が指定されたときの処理を行います。 接続先のFTPサーバー側のディレクトリ名を削除します。
        定義:
        actionDELdir クラス内 AbstractConnect
        パラメータ:
        remoteDir - FTP先のディレクトリ名
        例外:
        java.io.IOException - 入出力エラーが発生したとき
      • setMode

        public void setMode​(java.lang.String mode)
        扱うファイルの種類を指定します (初期値:ASCII)。 ファイルを FTP でやり取りする場合、ASCII 指定すると、OSの改行コードの違いを 吸収して、ファイルのやり取りが行われます。(つまり、改行コード変換が行われます。) BINARY 指定すると、現状のファイルのまま、やり取りされます。 これは、たとえ、アスキーファイルであっても、そのままの姿でやり取りされるということです。 内部的には、isAsciiMode 属性に、true:ASCII / false:BINARY で管理されます。
        パラメータ:
        mode - 扱うファイルの種類を指定します [ASCII/BINARY]
      • setPassive

        public void setPassive​(boolean isPassive)
        パッシブモードを利用するかどうか(true:パッシブ)を設定します(初期値:true)。 パッシブモード(ローカルからサーバーへ接続を張る)を利用する場合に宣言します。 通常のFTPでは、アクティブモードでファイルをやり取りします。これは、クライアント側が、サーバーソケットを オープンし、指定のポートで待ちうけ状態を作り、FTPサーバー側から接続してもらいます。 一般的な企業内では、ファイアウォールの設定等で、外部からの接続を制限しているケースが多く、アクティブモード では、繋がらない場合が、ほとんどです。 このクラスでは、初期値をパッシブモードにすることで、企業内のファイアウォールのある環境でも 接続できるようにしています。
        パラメータ:
        isPassive - パッシブモードを利用するかどうか。(true:パッシブ)
      • setEncode

        public void setEncode​(java.lang.String encode)
        日本語ファイル名などのエンコード名を指定します(初期値:UTF-8)。
        パラメータ:
        encode - エンコード名
      • main

        public static void main​(java.lang.String[] args)
        このクラスの動作確認用の、main メソッドです。
        パラメータ:
        args - コマンド引数配列