数百・数千個のファイルをアップロードしたいとき

たくさんのファイル
大量のファイルのアップロードには時間がかかる

ブログツール(CMSツール)など、比較的規模の大きなシステムをウェブサーバ上にセットアップしたい場合、数百・数千個のファイルをアップロードしなければならないことがあります。 (例えば、「Movable Type」だと200を超えるフォルダと2500個程度のファイルで構成されています。)

これらのファイルをFTPソフトでサーバにアップロードすると、全体の容量がそれほど大きくなくても、かなりの時間がかかってしまう場合があります。 ファイル数が多ければ多いほど、データのアップロード以外の処理や通信が増えてしまうからです。

アップロード時のエラー
途中でエラーが出ると面倒

また、何らかの事情で数個のファイルだけアップロード時にエラーが発生した場合、アップロードできなかったファイルを後から個別にアップロードするのも面倒です。

そんなときは、すべてのファイルを単一のZIPファイルに圧縮してアップロードし、サーバ上で展開(解凍)すると早く済みます。
※最初からZIP形式で圧縮して配布されているツールをセットアップする場合は、自分のPC上では展開せずに(配布されている)圧縮ファイルのままアップロードすれば良いでしょう。

(注)この方法は、TelnetやSSHを使ってサーバにログインできるサービスが提供されているウェブサーバでないと使えません。
※無料スペースではまず無理です。レンタルサーバでも無理なものもあります。

圧縮状態でアップロードすれば1ファイルで済む

アップロードしたい全ファイルをZIP形式で圧縮すれば、アップロードするファイルは1つだけで済みます。 また、圧縮されているため全体の容量も小さくなり、ファイル自体の転送にかかる時間も短くなります。 このファイル1つをアップロードするだけなら、数千個のファイルを個別にアップロードするよりも時間はかかりませんし、 一部のファイルだけに転送エラーが発生するようなこともありません。

なお、Windows上でファイルやフォルダをZIP形式に圧縮するには、下図のように圧縮したいファイルやフォルダを選択した上で右クリックし、「送る」→「圧縮(zip形式)フォルダ」メニューをクリックします。 すると、ZIP形式のファイルが生成されます。

Windows上で圧縮ファイル(ZIP)を作る方法
Windows上で圧縮ファイル(ZIP形式)を作る場合(WindowsXPの例)

サーバにログインして unzipコマンドで展開

ZIPファイルをFTPソフトなどでサーバにアップロードしたら、「TeraTerm Pro」などの通信ソフトを使ってサーバにログインします。 そこで「unzip」コマンドを使い、先ほどアップロードしたZIPファイルを展開します。

unzipコマンド
unzipコマンドを使って圧縮ファイルを展開

unzipコマンドの使い方は簡単で、「unzip」の後に半角スペースを1つ打ち、展開したい圧縮ファイル名(ZIPファイル名)を入力するだけです。 例えば、圧縮ファイル名が「 MT-4_24-ja.zip 」なら、

unzip MT-4_24-ja.zip

と入力するだけです。
[Enter]キーを押せば、すぐに展開処理が行われます。

サーバ上で展開
圧縮ファイルをサーバ上で展開

この方法なら、あっという間に展開できます。つまりこれで、アップロード完了です。 ディレクトリ(フォルダ)構成もそのまま維持された状態で展開されます。 ファイル数が数千個あっても、個別に転送するよりもかなり早く完了できるでしょう。
※筆者の環境では、約260個のディレクトリ・約2,500個のファイルを展開するのにかかった時間は4秒程度でした。
※元のZIPファイルはそのまま残っているので、不要ならサーバから削除して下さい。

おわりに

今回は、数百・数千個といった大量のファイルをアップロードしなければならない場合に、1つ1つアップロードするよりも速く完了できる方法をご紹介いたしました。 ウェブサーバにTelnetやSSHを使ってログインできるなら、ぜひ試してみて下さい。



※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。