PHP- ftp_get - Manual

osCommerceを別のサーバに引っ越すときに妙に時間がかかるのが画像の引っ越しだ。現在利用しているサーバと引っ越し先のサーバにそれぞれSSHがあると簡単に圧縮して転送できる。
レンタルサーバによっては制限が厳しく、転送手段がftpのみだととんでもなく時間がかかることになる。

ftpだけで転送すると、現サーバから画像を手元にダウンロードして新サーバへアップロードする。
ftpサーバにもよるが制限があり途中でftpの接続が切断されることがある。
切断された部分の画像は不完全な状態となりこのファイルを探して再開することになる。 悪い条件が重なると、何日も時間がかかることがあった。

先日も、imageディレクトリ内に3GB強の画像データがあるサーバの引っ越しをした。
サブディレクトリは無く、画像がすべて同一ディレクトリ内に設置されているため、ftpに接続して画像をダウンロードするスクリプトを作成してみた。
引っ越し先のサーバにプログラムを設置してftpに接続。元のサーバのファイルリストを取得して画像ファイル名を配列に格納した。
ここまでできたら、ftp_getコマンドで画像を1枚ずつサーバにダウンロードできた。
5分くらいでスクリプトを作成して、別の仕事をしながらスクリプトを動作させて予想より短時間で画像を移動できた。