頑張らない!でも諦めない!必死にならずにええかげん

各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]タブ内で転送モード指定が行えます。

01_FFFTP転送モード設定

FFFTP転送モード設定

FileZilla Client

FileZilla Clientにおいて転送モードの設定はメニューから、
[編集]-[設定]を選択し、設定画面を表示します。
表示された設定画面内のサイドメニューから[ファイルの種類]を選択し転送モード指定を行います。

FileZillaのダウンロードとインストールに関しては以下でご紹介しています。
FTPクライアントFileZilla日本語版のダウンロードとインストール

02_FileZilla Client転送モード設定

FileZilla Client転送モード設定

WinSCP

WinSCPにおいて転送モードの設定はツールバー内のプルダウンメニューから行います。
プルダウンメニュー内で転送モードの選択と設定を行います。
[設定]をクリックすることで、環境設定画面が開きます。

設定画面のサブメニュー内の[転送]-[初期設定]を選択すると、
転送モードのプリセット一覧が確認できます。
このプリセットを編集することで転送モードの変更が行えます。

03_WinSCP転送モードプリセット設定

WinSCP転送モードプリセット設定

転送モードの初期設定画面からプリセットを選択し[編集]をクリックすると、
プリセット設定として転送モードの指定が行えます。

04_WinSCP転送モード設定

WinSCP転送モード設定

FTPRush

FTPRushにおいて転送モードの設定はメニューから[ツール]-[転送モード]から選択が行えます。

05_FTPRush転送モード選択

FTPRush転送モード選択

転送モードの[自動]においてテキストとして転送を行う対象は、
メニューの[オプション]を選択しオプション画面のサイドメニューから、
[転送]-[テキストリスト]にて対象の拡張子を指定します。

06_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がデフォルトでテキスト扱いではなかった」

それだけでした。
ソフトを疑う前にちゃんとそれぞれの動作を確認したいものです。

*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

プロモーション(btm)

Google or AdMax Promotion (it)

 - 同期・シンク ,

  関連記事

eye_phpmyadmin
phpMyAdminを利用したMySQL同期とWM3500Rポート解放

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
ファイル共有(SugarSync)のPC用クライアントのインストール

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_local_mysql
wordpressのMySQLデータインポート前のドメイン置換作業(SQLファイル)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
ファイル共有(SugarSync)を利用したブックマークアイコンの公開

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
SugerSync™から「トライアルは残り 25 日です」と通知を受け取った場合の対処法

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
SugerSync™(.com)からのメールが騙しまがいで好感を持てない件

禁断の機能がau公式解禁!WALLETポイントの現金化がついに開放。 【無料】モ …

eye_phpmyadmin
phpMyAdminでMySQLエクスポートが途中で切れる場合の対応策

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
ファイル共有(SugarSync)の無料アカウント取得方法(まだ取れる!)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_network
FileZilla Clientによるパーミッション一括変更

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_sugarsync
ファイル共有(SugarSync)のPC用クライアントからアカウント解除方法

Google or AdMax Promotion(it) 禁断の機能がau公式 …