Donate258Patreon127


FTP(File Transfer Protocol)

FTPは、通常、ファイルの転送に使われるプロトコルです。

しかし、このプロトコルを使用してUMLの図を生成することができます。

そのためには、PlantUMLをFTPモードで起動します。そうすると、PlantUMLは疑似FTPサーバとして動作します。 このサーバにはテキストファイルをアップロードすることができます。そして、FTPサーバ上に画像が自動的に生成されます。 後は、FTPサーバから画像ファイルをダウンロードするだけです。

このFTPサーバを起動するには、次のコマンドを実行してください:

java -jar plantuml.jar -ftp

デフォルトでは、ポート番号4242を使用しますが、他のポートを指定することも可能です:

java -jar plantuml.jar -ftp:12345

次に、127.0.0.1の指定したポート番号に、任意のFTPクライアントで接続します。user/passwordは何でも構いません。

このFTPサーバの実装は非常にシンプルです。サブディレクトリを作ることも、ファイルをリネームすることもできません。 できるのは、ファイルを削除することだけです。

本当のところ、これは本物のFTPサーバではありません。ディスク上には何も保存せず、すべてメモリ上で動作します。

アプリケーション実行の例をcodeumlで確認することができます。

この方法の利点は、あるアプリケーションがFTPを扱えさえすれば、簡単にPlantUMLを組み込むことができるという点です。

図を受け取るごとにJavaプロセスを起動するよりも、この方法の方が簡単かもしれません。

転送の例

Status:Connecting to 127.0.0.1:24242...
Status:Connection established, waiting for welcome message...
Response:220 PlantUML
Command:USER anonymous
Response:331 Password required
Command:PASS ***
Response:230 Logged in.
Command:SYST
Response:215 UNIX Type: L8.
Command:FEAT
Response:502 Command not implemented.
Status:Connected
Status:Retrieving directory listing...
Command:PWD
Response:257 "/" is current directory.
Command:TYPE I
Response:200 Command okay.
Command:PASV
Response:227 Entering Passive Mode (127,0,0,1,39,59).
Command:LIST
Response:150 Opening ASCII mode data
Response:226 Listing completed.
Status:Directory listing successful
Status:Connecting to 127.0.0.1:24242...
Status:Connection established, waiting for welcome message...
Response:220 PlantUML
Command:USER anonymous
Response:331 Password required
Command:PASS ***
Response:230 Logged in.
Status:Connected
Status:Starting upload of data1.txt
Command:CWD /
Response:250 "/" is new working directory..
Command:PWD
Response:257 "/" is current directory.
Command:TYPE A
Response:200 Command okay.
Command:PASV
Response:227 Entering Passive Mode (127,0,0,1,39,60).
Command:STOR data1.txt
Response:150 FILE: data1.txt
Response:226 Transfer complete.
Status:File transfer successful, transferred 339 bytes in 1 second
Status:Retrieving directory listing...
Command:TYPE I
Response:200 Command okay.
Command:PASV
Response:227 Entering Passive Mode (127,0,0,1,39,61).
Command:LIST
Response:150 Opening ASCII mode data
Response:226 Listing completed.
Status:Directory listing successful
Status:Retrieving directory listing...
Command:PASV
Response:227 Entering Passive Mode (127,0,0,1,39,62).
Command:LIST
Response:150 Opening ASCII mode data
Response:226 Listing completed.
Status:Directory listing successful
Status:Starting download of /data1.png
Command:PASV
Response:227 Entering Passive Mode (127,0,0,1,39,63).
Command:RETR data1.png
Response:150 Opening
Response:226 Transfer complete.
Status:File transfer successful, transferred 3705 bytes in 1 second