Skip to content

FTPのスキャンの高速化

高速スキャンは変更の有無をファイルサイズのみを比較

LightFileコマンドは、指定されたディレクトリ内のファイルをすべて探索して追加されたファイルや変更されたファイルを検出します。この探索をファイルのスキャンと呼びます。

ファイルのスキャンにおいて、ファイルの変更を判定するには次の項目を比較します。

  • ファイルの更新日
  • ファイルサイズ
  • ファイルのパーミッション

この比較をファイルサイズのみに簡略化することにより、FTP(FTPS)においてスキャンにかかる時間を大幅に短縮することができます。

このような探索モードを利用するにはコマンドラインオプション--remote-fast-scanを指定します。

bash
$ lightfile \
    --serial <付与されたシリアルコー> \
    --file-system ftp \
    --host <接続先ドメイン名またはIPアドレ> \
    --user <FTPユーザ> \
    --password <FTPパスワー> \
    --dir <FTP接続先での対象ディレクト> \
    --remote-fast-scan

高速スキャンのリスクについて

ある画像ファイルのファイルサイズが削減された後に、サイトの運用者がそのファイルを上書き保存で変更したとします。

このとき偶然、前回のファイルサイズ削減後とまったく同じファイルサイズになってしまうと(ファイルサイズの衝突が起こると)、この変更後の画像が、軽量化の処理の対象外となってしまいます。

軽量化の処理から外れても表示には異常なし

もしファイルサイズの軽量化の対象から外れても、画像の表示には何ら問題はありません。

つまり偶然、ファイルサイズの衝突があったとしてもサイトの運用に実害はありません。

ファイルサイズの衝突が起こる可能性

1バイト単位でまったく同じファイルサイズになる可能性は極めて低いと言えます。

また、ファイルサイズの削減前後ではファイルサイズのばらつきの平均値も異なり、さらに発生の可能性は低くなります。