各FTPクライアントの転送モード選択の違いによる動作
2014/11/22
FTPクライアントを利用する上で、FTPには転送モードの設定があります。
各FTPクライアントの転送モードと転送の結果どのようなファイルが、
ローカル側に生成されるのかという点について少しご紹介します。
はじめに
たまに画像ファイルを開いて、以下のようなメッセージが表示されることはないでしょうか。
「Windows フォトビューアでこの画像を開けません。
ファイルが破損しているか、大きすぎる可能性があります。」
これはテキストファイル以外である画像ファイルを、
ASCII(アスキー)モードで転送を行った際に発生します。
私の場合サーバーがUnix環境でローカルがWindows環境であることが問題なのですが、
多くの人もそうした環境でバックアップをしているのではないでしょうか。
バックアップしたものをそのままアップロードするだけであれば、
すべてバイナリモードで問題はないはずです。
しかしテキストファイル(phpなど)をバイナリモードでコピーして、
ローカル環境でphpなどを実行しようとした際には正しく動作しない場合があります。
たまにWebで検索すると「ファイル転送にはASCII(アスキー)モードを使おう」といったものを見かけます。
確かにHTMLファイルやPHPファイルなどの、
テキストベースのファイルに関しては、ASCII(アスキー)モードで転送を行う必要があります。
しかし、バイナリファイルの場合には、話は別です。
バイナリファイルはバイナリモードで転送を行なわなければ、
ファイルが破損する可能性があります。
環境
今回確認を行った各クライアントソフトのバージョンは以下の通りです。
- FFFTP: 1.97b
- FileZilla Client: 3.7.3
- WinSCP: 5.1.7
- FTPRush: 2.1.8
各FTPクライアントの設定
FTPクライアントにはそれぞれ転送モードの設定があります。
その中には「自動」というモードも用意されているものもあります。
一言に自動といっても、厳密には自動ではなく「条件指定」という意味合いが強く、
拡張子によって転送モードを切り替えるという機能です。
FFFTP
FFFTPにおいて転送モードの設定はメニューから、
[オプション]-[環境設定]を選択し、オプション画面を表示します。
表示されたオプション画面の[転送1]タブ内で転送モード指定が行えます。
FileZilla Client
FileZilla Clientにおいて転送モードの設定はメニューから、
[編集]-[設定]を選択し、設定画面を表示します。
表示された設定画面内のサイドメニューから[ファイルの種類]を選択し転送モード指定を行います。
FileZillaのダウンロードとインストールに関しては以下でご紹介しています。
FTPクライアントFileZilla日本語版のダウンロードとインストール
WinSCP
WinSCPにおいて転送モードの設定はツールバー内のプルダウンメニューから行います。
プルダウンメニュー内で転送モードの選択と設定を行います。
[設定]をクリックすることで、環境設定画面が開きます。
設定画面のサブメニュー内の[転送]-[初期設定]を選択すると、
転送モードのプリセット一覧が確認できます。
このプリセットを編集することで転送モードの変更が行えます。
転送モードの初期設定画面からプリセットを選択し[編集]をクリックすると、
プリセット設定として転送モードの指定が行えます。
FTPRush
FTPRushにおいて転送モードの設定はメニューから[ツール]-[転送モード]から選択が行えます。
転送モードの[自動]においてテキストとして転送を行う対象は、
メニューの[オプション]を選択しオプション画面のサイドメニューから、
[転送]-[テキストリスト]にて対象の拡張子を指定します。
自動転送モードの拡張子初期設定比較
こうして確認するとそれぞれのクライアントソフトが初期状態で、
テキストとして転送をASCII(アスキー)モードで行ってくれる拡張子に差があることがわかります。
初期の設定状態を比較します。
初期状態では一般的な拡張子であっても、
ASCII(アスキー)モードが利用されない状態にある点で、
それぞれのクライアントソフトを利用する上で注意が必要です。
※背景色ピンクで表示している部分は使用頻度が高いと思われる部分で、
クライアントで初期設定されていない拡張子を示しています。
初期設定の一覧
拡張子 | 設定内容 | |||
---|---|---|---|---|
FFFTP | FileZilla Client | WinSCP | FTPRush | |
.am | am | |||
.asp | .asp | asp | *.asp | |
.aspx | .aspx | |||
.bas | *.bas | |||
.bat | bat | *.bat | ||
.c | c | *.c | *.c | |
.cfg | *.cfg | |||
.cfm | cfm | *.cfm | ||
.cgi | .cgi | cgi | *.cgi | *.cgi |
.conf | conf | |||
.cpp | cpp | *.cpp | *.cpp | |
.css | .css | css | *.css | *.css |
.dhtml | dhtml | *.*html | *.dhtml | |
.diz | diz | *.diz | ||
.h | h | *.h | *.h | |
.hpp | hpp | |||
.htaccess | .htaccess | .htaccess | ||
.htm | .htm | htm | *.htm | *.htm |
.html | .html | html | *.*html | *.html |
.in | in | |||
.ini | *.ini | *.ini | ||
.inc | inc | |||
.java | java | |||
.js | .js | js | *.js | |
.jsp | jsp | |||
.lua | lua | |||
.m4 | m4 | |||
.mak | mak | *.mak | ||
.md5 | md5 | |||
.nfo | nfo | *.nfo | ||
.nsi | nsi | |||
.pas | pas | *.pas | *.pas | |
.patch | patch | |||
.php | .php | php | *.php | |
.php3 | *.php3 | |||
.phtml | phtml | |||
.pl | .pl | pl | *.pl | *.pl |
.po | po | |||
.properties | .properties | |||
.py | .py | py | ||
.qmail | qmail | |||
.rb | .rb | |||
.rdf | .rdf | |||
.rss | .rss | |||
.sfv | *.sfv | |||
.sh | .sh | sh | *.sh | |
.shtm | .shtm | *.shtm | ||
.shtml | .shtml | shtml | *.shtml | |
.sql | .sql | sql | ||
.svg | svg | |||
.tcl | tcl | *.tcl | ||
.tpl | tpl | |||
.tex | *.tex | |||
.txt | .txt | txt | *.txt | *.txt |
.vbs | .vbs | vbs | ||
.xht | .xht | |||
.xhtml | .xhtml | xhtml | *.xtml | |
.xml | .xml | xml | *.xml | |
.xrc | xrc |
初期設定を確認すると、それぞれのFTPクライアントで、
テキストモードの転送を行っていない拡張子が あることがわかります。
個別にご自分の用途に合わせて拡張子を登録しておかなければ、
正しく転送されたファイルが表示されないなどが発生する可能性があります。
転送モードの選択と転送の結果
私はよくわからない時にどこかのサイトでちゃんとASCIIモードで転送しましょう!という
記述を鵜呑みにして、困ったことに遭遇しました。
バイナリファイルまでASCII(アスキー)モードで転送を行ってバックアップをしてしまった為、
画像ファイルなどがすべて壊れた状態でバックアップされていました。
画像ファイルが壊れた状態でローカルコピーされた際に、
ファイルを開いて表示されたのが最初に書いたあのメッセージです。
「Windows フォトビューアでこの画像を開けません。
ファイルが破損しているか、大きすぎる可能性があります。」
FTPクライアントの転送モードの設定をしっかりとチェックし、
ASCII(アスキー)モードを利用するファイルを指定したうえで、
バイナリファイルはちゃんとバイナリ転送を行なわけなければと再認識しました。
結局は拡張子登録の自動モードが安定
今回各FTPクライアントの各モードで転送を行った際の、
結果は以下の通りどのクライアントも同様の動作をしました。
自動モードでASCII(アスキー)モードを利用する拡張子を適切に設定することで、
バイナリファイルと一緒に転送を行っても、
テキストファイルはASCIIモード、バイナリファイルはバイナリ転送が行われました。
クライアント | 動作モードと設定 | PHPは未登録 | PHP登録 | |||
---|---|---|---|---|---|---|
PHP | PNG | PHP | PNG | |||
FFFTP | 常にアスキーモード | OK | 破損 | OK | 破損 | |
常にバイナリモード | NG | OK | NG | OK | ||
ファイル名で切換え | アスキーモードのファイル名 | NG | OK | OK | OK | |
FileZilla Client | 自動 | 以下の拡張子をASCIIファイルとして扱う | NG | OK | OK | OK |
ASCII | OK | 破損 | OK | 破損 | ||
バイナリ | NG | OK | NG | OK | ||
WinSCP | テキスト | OK | 破損 | OK | 破損 | |
バイナリ | NG | OK | NG | OK | ||
自動 | 以下ファイルはテキストモード | NG | OK | OK | OK | |
FTPRush | 自動 | テキストリスト | NG | OK | OK | OK |
バイナリ | OK | 破損 | OK | 破損 | ||
テキスト | NG | OK | NG | OK |
どのFTPクライアントを利用した場合でも、
用途に応じて適切に設定を行ってあげることで遜色なく利用することができます。
ただ、WinSCPに関しては使い易いとの評価もあるようですが、
個人的には転送速度が他と比べて遅い印象でした。
これまでFTPRushを利用した際になんかちゃんファイルが、
転送されていないなと感じていた原因は、
単に「phpがデフォルトでテキスト扱いではなかった」
それだけでした。
ソフトを疑う前にちゃんとそれぞれの動作を確認したいものです。
関連記事
-
11.VaultPress™-Jetpack by WordPress.com
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
ファイル共有(SugarSync)のPC用クライアントからアカウント解除方法
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
phpMyAdminを利用したMySQL同期とWM3500Rポート解放
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
FileZilla Clientによるパーミッション一括変更
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
KAGOYA™(カゴヤ)の共用レンタルサーバにFTP接続
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
phpMyAdminでMySQLエクスポートが途中で切れる場合の対応策
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
VaultPress™オンラインバックアップサービスの利用登録
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
ファイル共有(SugarSync)の無料アカウント取得方法(まだ取れる!)
Google or AdMax Promotion(it) 禁断の機能がau公式 …
-
SugerSync™(.com)からのメールが騙しまがいで好感を持てない件
禁断の機能がau公式解禁!WALLETポイントの現金化がついに開放。 【無料】モ …
-
wordpressのMySQLデータインポート前のドメイン置換作業(SQLファイル)
Google or AdMax Promotion(it) 禁断の機能がau公式 …