Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


FTPを使用してIBMiにファイルをアップロード/ダウンロードする方法

ValenceはIBMiのライブラリとIFSにオブジェクトを展開しています。
IBMiのIFS上にあるファイルをアップロード/ダウンロードしたり、RPGLEのソースコードをアップロード/ダウンロードする場合にはFTPを使用することが多いと思います。サポートでもFTPの使用方法についてご案内することが多いため、様々なケースでのFTPコマンド使用方法をまとめました。

FTPの起動とIBMiへの接続

Windows端末からIBMiに接続する場合、FFFTPやFileZillaのようなFTPクライアントソフトを使用してファイルを入出力することもできますが、TipsではWindowsの標準で導入されているFTPクライアントの使用方法を説明します。
スタートメニューからコマンドプロンプトを起動してください。

FTPの起動とログイン

  1. コマンドプロンプトでFTPコマンドを実行するとFTPが起動します。
  2. OPENコマンドでIBMiのIPアドレス または ホスト名を指定して接続します。
  3. ユーザーを入力します。
  4. パスワードを入力します。
1. C:\Users\[UserName]>FTP
2. ftp> OPEN 192.168.0.XX
  220-QTCP AT POWER10B.MIGARO.CO.JP.
  220 CONNECTION WILL CLOSE IF IDLE MORE THAN 15 MINUTES.
  501 OPTS UNSUCCESSFUL; SPECIFIED SUBCOMMAND NOT RECOGNIZED.
3. ユーザー (192.168.0.XX:(none)): [ユーザーを入力]
  331 ENTER PASSWORD. 
4. パスワード: [パスワードを入力]
  230 [ユーザー] LOGGED ON.
  ftp>

※1.2.の手順はFTPコマンドの引数にIPアドレスとホスト名を指定することで省略することも可能です。

   FTP 192.168.0.XX
  220-QTCP AT POWER10B.MIGARO.CO.JP.
  220 CONNECTION WILL CLOSE IF IDLE MORE THAN 15 MINUTES.
  501 OPTS UNSUCCESSFUL; SPECIFIED SUBCOMMAND NOT RECOGNIZED.

FTPの終了

FTPはQUITコマンドで終了することができます。

   ftp> QUIT
   221 QUIT SUBCOMMAND RECEIVED.
   C:\Users\[UserName]>

Tipsでは、FTPを起動してログイン後の手順を説明します。

FTPを使用してファイルをダウンロードする方法

FTPでSAVFファイルをダウンロード

ライブラリやオブジェクトをSAVFファイル形式に保管して受け渡しすることがよくあると思います。
Valenceでは、AppBuilderのアプリケーションをエクスポートすると、VVEXPORTライブラリにSAVFファイルとしてアプリケーションが保管できます。
VVEXPORTライブラリに出力されたSAVFファイル(A240723290)をダウンロードする手順を例に説明します。

  1. BINコマンドでバイナリーモードに変更します。
  2. CDコマンドでリモート側のカレントディレクトリを変更します。
  3. LCDコマンドでローカル側のカレントディレクトリを変更します。
  4. GETコマンドでファイルを取得します。
1. ftp> BIN
   200 REPRESENTATION TYPE IS BINARY IMAGE.
2. ftp> CD VVEXPORT
   250 "VVEXPORT" IS CURRENT LIBRARY.
3. ftp> LCD C:\temp
   ローカル ディレクトリは現在 C:\TEMP です。
4. ftp> GET A240723290.SAVF
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 RETRIEVING MEMBER SAVF IN FILE A240723290 IN LIBRARY VVEXPORT.
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 290928 バイトが受信されました 0.09秒 3197.01KB/秒。
   ftp>

上記の手順でファイルをC:\temp\A240723290.SAVFとしてダウンロードできます。

また、2. 3. で明示的にカレントディレクトリを変更していますが GETコマンドで直接ファイルパスを指定してダウンロードすることも可能です。

  1. BINコマンドでバイナリーモードに変更します。
  2. GETコマンドでファイルを取得します。
1. ftp> BIN
   200 REPRESENTATION TYPE IS BINARY IMAGE.
2. ftp> GET /QSYS.LIB/VVEXPORT.LIB/A240723290.SAVF C:\temp\A240723290.SAVF
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 RETRIEVING MEMBER A240723290 IN FILE A240723290 IN LIBRARY VVEXPORT.
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 290928 バイトが受信されました 0.07秒 4475.82KB/秒。
   ftp>

FTPでQRPGLESRCファイルのメンバーをダウンロード

RPGのソースコードや、CLのソースコード、DDSの定義からメンバーを指定して、ファイルをダウンロードすることもできます。
VALENCE6ライブラリのQRPGLESRCファイルに含まれているEXNABBTNメンバーをUTF-8形式のファイルとしてダウンロードする手順を例に説明します。

  1. クライアント側の文字コードを1208 (UTF-8)に設定します。
  2. GETコマンドでファイルを取得します。
1. ftp> QUOTE TYPE C 1208
   200 REPRESENTATION TYPE IS CCSID 1208.
2. ftp> GET VALENCE6/QRPGLESRC.EXNABBTN C:\temp\EXNABBTN.TXT
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   RETRIEVING MEMBER EXNABBTN IN FILE QRPGLESRC IN LIBRARY VALENCE6.
   FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 7937 バイトが受信されました 0.00秒 7937000.00KB/秒。
   ftp>

また、2. GETコマンドでは以下のようなファイル指定も可能です。

2. ftp> GET /QSYS.LIB/VALENCE6.LIB/QRPGLESRC.FILE/EXNABBTN.MBR C:\temp\EXNABBTN.TXT
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150-NAMEFMT SET TO 1.
   150 RETRIEVING MEMBER EXNABBTN IN FILE QRPGLESRC IN LIBRARY VALENCE6.
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 7937 バイトが受信されました 0.00秒 7937.00KB/秒。
   ftp>

FTPでIFS上のファイルをダウンロード

IFS上に配置されたファイルを指定してファイルをダウンロードします。
ValenceはIFS上にファイルを展開しています。描画設定を変更するための
/valence-6/resources/desktop/themes/css/Portal/overrides.css をダウンロードする手順を例に説明します。

  1. GETコマンドでファイルを取得します。
1. ftp> GET /valence-6/resources/desktop/themes/css/Portal/overrides.css C:\temp\overrides.css
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150-NAMEFMT SET TO 1.
   150 RETRIEVING FILE /valence-6/resources/desktop/themes/css/Portal/overrides.css
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 1584 バイトが受信されました 0.00秒 1584000.00KB/秒。
   ftp>

XLSX形式のファイルや、画像ファイルをダウンロードする場合には、バイナリーモードに変更してダウンロードしてください。
 ※/valence-6/resources/templates/vvSSTemplate.xlsx をダウンロードする場合

  1. バイナリーモードに変更します。
  2. GETコマンドでファイルを取得します。
1. ftp> BIN
   200 REPRESENTATION TYPE IS BINARY IMAGE.
2. ftp> GET /valence-6/resources/templates/vvSSTemplate.xlsx C:\temp\vvSSTemplate.xlsx
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 RETRIEVING FILE /valence-6/resources/templates/vvSSTemplate.xlsx
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 37546 バイトが受信されました 0.00秒 37546000.00KB/秒。
   ftp>

FTPでIFS上の画像ファイルを一括ダウンロード

IBMiのIFS上に複数の画像ファイルが配置されている場合、FTPで一括ダウンロードすることができます。
Valenceではサンプルのデータとして、/valence-6/resources/images/nabSamples/ディレクトリに画像ファイルの一覧が展開されています。
このディレクトリに配置されたjpegファイルをC:\temp\imagesへ一括ダウンロードする手順を例に説明します。

  1. BINコマンドでバイナリーモードに変更します。
  2. CDコマンドでリモート側のカレントディレクトリを変更します。
  3. LCDコマンドでローカル側のカレントディレクトリを変更します。
  4. PROMPTコマンドで対話モードをオフに変更します。
  5. MGETコマンドでファイルを取得します。
1. ftp> BIN
   200 REPRESENTATION TYPE IS BINARY IMAGE.
2. ftp> CD /valence-6/resources/images/nabSamples/
   250-NAMEFMT SET TO 1.
   250 "/valence-6/resources/images/nabSamples" IS CURRENT DIRECTORY.
3. ftp> lCD C:\TEMP\Images
   ローカル ディレクトリは現在 C:\TEMP\Images です。
4. ftp> PROMPT
   対話モード オフ。
5. ftp> MGET *.JPEG
   200 REPRESENTATION TYPE IS BINARY IMAGE.
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 RETRIEVING FILE /valence-6/resources/images/nabSamples/HEXNUT375.jpeg
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 11772 バイトが受信されました 0.00秒 11772000.00KB/秒。
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 RETRIEVING FILE /valence-6/resources/images/nabSamples/PCB6500X-1.jpeg
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 6506 バイトが受信されました 0.00秒 6506000.00KB/秒。 
   ...<省略>...

FTPを使用してファイルをアップロードする方法

FTPでSAVFファイルをアップロード

受け取ったSAVFファイルをIBMiのライブラリ上にアップロードします。
ダウンロードしたValenceアプリケーションのSAVFファイル(A240723290)を、IBMiのVVEXPORTライブラリにアップロードする手順を例に説明します。

  1. BINコマンドでバイナリーモードに変更します。
  2. PUTコマンドでファイルをアップロードします。
1. ftp> BIN
   200 REPRESENTATION TYPE IS BINARY IMAGE.
2. ftp> PUT C:\temp\A240723290.SAVF /QSYS.LIB/VVEXPORT.LIB/A240723290.SAVF
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150-NAMEFMT SET TO 1.
   150 SENDING FILE TO MEMBER A240723290 IN FILE A240723290 IN LIBRARY VVEXPORT.
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 290928 バイトが送信されました 0.08秒 3547.90KB/秒。
   ftp>

FTPでQRPGLESRCファイルにメンバーをアップロード

RPGのソースコードや、CLのソースコード、DDSの定義からメンバーを指定して、ファイルをアップロードします。
C:\tempにダウンロードした UTF-8テキスト形式のソースコード(EXNABBTN.txt)を任意のライブラリ(VALDOCLIB)にアップロードする手順を例に説明します。

  1. クライアント側の文字コードを1208 (UTF-8)に設定します。
  2. PUTコマンドでファイルをアップロードします。
1. ftp> QUOTE TYPE C 1208
   200 REPRESENTATION TYPE IS CCSID 1208.
2. ftp> PUT C:\temp\EXNABBTN.txt /QSYS.LIB/VALDOCLIB.LIB/QRPGLESRC.FILE/EXNABBTN.MBR
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 SENDING FILE TO MEMBER EXNABBTN IN FILE QRPGLESRC IN LIBRARY VALDOCLIB.
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 7937 バイトが送信されました 0.00秒 1984.25KB/秒。
   ftp>

FTPでIFS上にファイルをアップロード

C:\tempに配置したoverrides.cssをIBMiの/valence-6/resources/desktop/themes/css/Portal/overrides.cssへアップロードする手順を例に説明します。

  1. BINコマンドでバイナリーモードに変更します。
  2. PUTコマンドでファイルをアップロードします。
1. ftp> BIN
   200 REPRESENTATION TYPE IS BINARY IMAGE.
2. ftp> PUT C:\temp\overrides.css /valence-6/resources/desktop/themes/css/Portal/overrides.css
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 SENDING FILE TO /valence-6/resources/desktop/themes/css/Portal/overrides.css
   226 FILE TRANSFER COMPLETED SUCCESSFULLY. 
   ftp: 1589 バイトが送信されました 0.04秒 39.73KB/秒。

FTPでIFS上に画像ファイルを一括アップロード

C:\temp\images\に配置している複数の画像ファイルを/valence-6/resources/imagesに一括でアップロードする手順を例に説明します。

  1. BINコマンドでバイナリーモードに変更します。
  2. CDコマンドでリモート側のカレントディレクトリを変更します。
  3. LCDコマンドでローカル側のカレントディレクトリを変更します。
  4. PROMPTコマンドで対話モードをオフに変更します。
  5. MPUTコマンドでファイルをアップロードします。
1. ftp> BIN
   200 REPRESENTATION TYPE IS BINARY IMAGE.
2. ftp> CD /valence-6/resources/images
   250 "/valence-6/resources/images" IS CURRENT DIRECTORY.
3. ftp> LCD C:\temp\images
   ローカル ディレクトリは現在 C:\temp\Images です。
4. ftp> PROMPT
   対話モード オフ。
5. ftp> MPUT *.jpeg
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 SENDING FILE TO /valence-6/resources/images/HEXNUT375.jpeg
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 11772 バイトが送信されました 0.01秒 981.00KB/秒。
   200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
   150 SENDING FILE TO /valence-6/resources/images/PCB6500X-1.jpeg
   226 FILE TRANSFER COMPLETED SUCCESSFULLY.
   ftp: 6506 バイトが送信されました 0.20秒 32.86KB/秒。
   ...<省略>...