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

# クラス SFTPConnect

java.lang.Object
org.opengion.fukurou.util.AbstractConnect
org.opengion.fukurou.util.SFTPConnect

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

public final class SFTPConnect extends AbstractConnect
SFTPConnect.java は、共通的に使用される SFTP関連の基本機能を実装した、クラスです。 これは、org.apache.commons.net.ftp.FTPClient をベースに開発されています。 このクラスの実行には、commons-net-ftp-2.0.jar が必要です。 -host=SFTPサーバー -user=ユーザー -passwd=パスワード -remoteFile=SFTP先のファイル名 を必須設定します。 -localFile=ローカルのファイル名は、必須ではありませんが、-command=DEL の場合にのみ不要であり、 それ以外の command の場合は、必要です。 -command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] は、SFTPサーバーに対しての処理の方法を指定します。 GET:SFTPサーバーからローカルにファイル転送します(初期値)。 PUT:ローカルファイルをSFTPサーバーに PUT(STORE、SAVE、UPLOAD、などと同意語)します。 DEL:SFTPサーバーの指定のファイルを削除します。この場合のみ、-localFile 属性の指定は不要です。 GETDIR,PUTDIR,DELDIR:指定のフォルダ以下のファイルを処理します。 -mkdirs=[true/false] は、受け側のファイル(GET時:LOCAL、PUT時:SFTPサーバー)に取り込むファイルのディレクトリが 存在しない場合に、作成するかどうかを指定します(初期値:true)。 通常、SFTPサーバーに、フォルダ階層を作成してPUTする場合、動的にフォルダ階層を作成したいケースで便利です。 逆に、フォルダは確定しており、指定フォルダ以外に PUT するのはバグっていると事が分かっている場合には false に設定して、存在しないフォルダにPUT しようとすると、エラーになるようにします。 引数文字列中に空白を含む場合は、ダブルコーテーション("") で括って下さい。 引数文字列の 『=』の前後には、空白は挟めません。必ず、-key=value の様に 繋げてください。

変更履歴:
  5.1.6.0 (2010/05/01) 新規追加
形式ｻﾝﾌﾟﾙ:
  SFTPConnect -host=SFTPサーバー -user=ユーザー -passwd=パスワード -remoteFile=SFTP先のファイル名 [-localFile=ローカルのファイル名] [-mode=[ASCII/BINARY] ] [-command=[GET/PUT/DEL/GETDIR/PUTDIR/DELDIR] ] [-passive=[true/false] ] -host=SFTPサーバー ：接続先のSFTPサーバーのアドレスまたは、サーバー名 -user=ユーザー ：接続するユーザー名 -remoteFile=SFTP先のファイル名 ：接続先のSFTPサーバー側のファイル名。PUT,GET 関係なくSFTP側として指定します。 [-passwd=パスワード] ：接続するユーザーのパスワード [-localFile=ローカルのファイル名] ：ローカルのファイル名。PUT,GET 関係なくローカルファイルを指定します。 [-port=ポート ] ：接続するサーバーのポートを指定します。 [-keyFile=秘密キーファイル ] ：公開キー暗号化方式を利用する場合のキーファイル名を指定します。 [-command=[GET/PUT/DEL] ] ：SFTPサーバー側での処理の方法を指定します。 [GETDIR/PUTDIR/DELDIR]] GET:SFTP⇒LOCAL、PUT:LOCAL⇒SFTP への転送です(初期値:GET) DEL:SFTPファイルを削除します。 GETDIR,PUTDIR,DELDIR 指定のフォルダ以下のファイルを処理します。 [-mkdirs=[true/false] ] ：受け側ファイル(GET時:LOCAL、PUT時:SFTPサーバー)にディレクトリを作成するかどうか(初期値:true) (false:ディレクトリが無ければ、エラーにします。) [-timeout=タイムアウト[秒] ] ：Dataタイムアウト(初期値:600 [秒]) [-display=[false/true] ] ：trueは、検索状況を表示します(初期値:false) [-debug=[false|true] ] ：デバッグ情報を標準出力に表示する(true)かしない(false)か(初期値:false[表示しない])
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  ### クラスから継承されたフィールド org.opengion.fukurou.util.AbstractConnect

  `BUFFER_MIDDLE, CR, FLAG_NG, FLAG_OK, host, isDebug, isDisplay, isMkdirs, passwd, port, timeout, TIMEOUT, user`

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `SFTPConnect()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `protected void`
  `actionDEL(String remoteFile)`
  command="DEL" が指定されたときの処理を行います。
  `protected void`
  `actionDELdir(String remoteDir)`
  command="DELDIR" が指定されたときの処理を行います。
  `protected void`
  `actionGET(String localFile, String remoteFile)`
  command="GET" が指定されたときの処理を行います。
  `protected void`
  `actionGETdir(String localDir, String remoteDir)`
  command="GETDIR" が指定されたときの処理を行います。
  `protected void`
  `actionPUT(String localFile, String remoteFile)`
  command="PUT" が指定されたときの処理を行います。
  `void`
  `connect()`
  SFTPサーバーへの接続、ログインを行います。
  `void`
  `disconnect()`
  SFTPサーバーとの接続をクローズします。
  `static void`
  `main(String[] args)`
  このクラスの動作確認用の、main メソッドです。
  `void`
  `setKeyFile(String keyFile)`
  公開キー暗号化方式を利用する場合のキーファイル名を指定します。

  ### クラスから継承されたメソッド org.opengion.fukurou.util.AbstractConnect

  `action, actionPUTdir, addFile, errAppend, errAppend, getErrMsg, getPort, getPort, makeLocalDir, setDebug, setDisplay, setHostUserPass, setMkdirs, setPort, setTimeout`

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## コンストラクタの詳細

  - ### SFTPConnect

    public SFTPConnect()
    デフォルトコンストラクター
    変更履歴:
      6.4.1.1 (2016/01/16) PMD refactoring. It is a good practice to call super() in a constructor

- ## メソッドの詳細

  - ### connect

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

  - ### disconnect

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

  - ### actionGET

    protected void actionGET(String localFile, String remoteFile) throws IOException
    command="GET" が指定されたときの処理を行います。 ローカルファイルを、接続先のSFTPサーバー側にアップロードします。
    定義:
      `actionGET` クラス内 `AbstractConnect`
    パラメータ:
      `localFile` - ローカルのファイル名
      `remoteFile` - SFTP先のファイル名
    例外:
      `IOException` - 入出力エラーが発生したとき
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、JSchException,SftpException を返していたのを、IOException に限定します。

  - ### actionGETdir

    protected void actionGETdir(String localDir, String remoteDir) throws IOException
    command="GETDIR" が指定されたときの処理を行います。 接続先のSFTPサーバー側のディレクトリ以下をローカルディレクトリに階層構造のままダウンロードします。
    定義:
      `actionGETdir` クラス内 `AbstractConnect`
    パラメータ:
      `localDir` - ローカルのディレクトリ名
      `remoteDir` - SFTP先のディレクトリ名
    例外:
      `IOException` - 入出力エラーが発生したとき
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、JSchException,SftpException を返していたのを、IOException に限定します。

  - ### actionPUT

    protected void actionPUT(String localFile, String remoteFile) throws IOException
    command="PUT" が指定されたときの処理を行います。 接続先のSFTPサーバー側のファイル名をローカルにダウンロードします。
    定義:
      `actionPUT` クラス内 `AbstractConnect`
    パラメータ:
      `localFile` - ローカルのファイル名
      `remoteFile` - SFTP先のファイル名
    例外:
      `IOException` - 処理中に Sftp エラーが発生した場合
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、JSchException,SftpException を返していたのを、IOException に限定します。

  - ### actionDEL

    protected void actionDEL(String remoteFile) throws IOException
    command="DEL" が指定されたときの処理を行います。 接続先のSFTPサーバー側のファイル名を削除します。
    定義:
      `actionDEL` クラス内 `AbstractConnect`
    パラメータ:
      `remoteFile` - SFTP先のファイル名
    例外:
      `IOException` - SFTPサーバー側のファイル名の削除に失敗したとき
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、SftpException を返していたのを、IOException に限定します。

  - ### actionDELdir

    protected void actionDELdir(String remoteDir) throws IOException
    command="DELDIR" が指定されたときの処理を行います。 接続先のSFTPサーバー側のディレクトリ名を削除します。
    定義:
      `actionDELdir` クラス内 `AbstractConnect`
    パラメータ:
      `remoteDir` - SFTP先のディレクトリ名
    例外:
      `IOException` - SFTPサーバー側のディレクトリ名の削除に失敗したとき
    変更履歴:
      6.0.2.5 (2014/10/31) throws で、SftpException を返していたのを、IOException に限定します。

  - ### setKeyFile

    public void setKeyFile(String keyFile)
    公開キー暗号化方式を利用する場合のキーファイル名を指定します。
    パラメータ:
      `keyFile` - 秘密キーファイル名

  - ### main

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