ファイルのフィルタリング
処理対象ファイルを柔軟に制御できます。
拡張子で絞り込み
特定の拡張子だけを処理の対象にできます。
JPEGファイルのみ処理
コマンドライン:
lightfile-batch /path/to/images --ext .jpg,.jpegYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
extensions:
- .jpg
- .jpegPNGファイルのみ処理
コマンドライン:
lightfile-batch /path/to/images --ext .pngYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
extensions:
- .pngファイルサイズで絞り込み
大きすぎるファイルや小さすぎるファイルを処理の対象外にできます。
指定しないときの既定値
--min-size / --max-size(batch.minSize / batch.maxSize)を指定しない場合も、5KB未満と5MBを超えるファイルは対象外です(最適化エンジンの既定値)。指定した場合はその値が使われます。
v6.0.10 から、この既定値の範囲外のファイルはスキャンの段階で対象外になり、ダウンロードや読み込みはしません。v6.0.8 までは、未指定のときスキャンでは外さず、ファイルを読み込んでから(リモートではダウンロードしてから)最適化エンジンが最小値・最大値の警告を出して飛ばしていたため、実行のたびにダウンロードが発生していました。
100KB以上のファイルのみ
コマンドライン:
lightfile-batch /path/to/images --min-size 100kbYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
minSize: 100kb5MB以下のファイルのみ
コマンドライン:
lightfile-batch /path/to/images --max-size 5mbYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
maxSize: 5mb100KB〜5MBのファイル
コマンドライン:
lightfile-batch /path/to/images --min-size 100kb --max-size 5mbYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
minSize: 100kb
maxSize: 5mbサイズ単位: b, kb, mb, gb (大文字小文字問わず)
パターンで絞り込み(glob形式)
glob形式のパターンマッチングにより、特定のディレクトリやファイル名で処理対象を制御できます。
特定のディレクトリのみ対象
コマンドライン:
lightfile-batch /path/to/images --include "uploads/**/*.jpg"YAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
include:
- "uploads/**/*.jpg"サムネイルディレクトリを除外
コマンドライン:
lightfile-batch /path/to/images --exclude "**/thumbnails/**"YAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
exclude:
- "**/thumbnails/**"複数のパターンを組み合わせ
コマンドライン:
lightfile-batch /path/to/images \
--include "uploads/**/*.jpg" \
--include "photos/**/*.png" \
--exclude "**/thumbnails/**" \
--exclude "**/temp/**"YAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
include:
- "uploads/**/*.jpg"
- "photos/**/*.png"
exclude:
- "**/thumbnails/**"
- "**/temp/**"glob パターンの例:
**/*.jpg- すべてのサブディレクトリのJPEGファイル2024/**/*- 2024ディレクトリ以下のすべてのファイル**/thumb_*- thumb_で始まるファイル*.{jpg,png}- JPEGまたはPNGファイル
--include と --exclude のパターンはどちらも次のように書きます。
- 照合する相手は処理のルートからの相対パスとファイル名の2つです。どちらかに当たれば一致します。ルートはローカルなら対象ディレクトリ、FTP と SFTP なら basePath、S3 ならプレフィックスです
**は0個以上のディレクトリにまたがります。inside/**はinsideの下のすべてのファイルに当たります*と?は1つのディレクトリの中だけに当たります。inside/*はinsideの直下のファイルにしか当たりません{jpg,png}はいずれかの文字列に、[abc]はいずれかの文字に当たります。大文字と小文字は区別しません- v6.1.0 までは
**が*と同じく1階層にしか当たらず、**/thumbnails/**などが深い階層のファイルを外していませんでした(v6.1.1 で修正)
更新日時で絞り込み
ファイルの更新日時を基準に、新しいファイルや古いファイルだけを処理対象にできます。
7日以内に更新されたファイルのみ
コマンドライン:
lightfile-batch /path/to/images --after 7dYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
after: 7d30日以前に更新されたファイルのみ
コマンドライン:
lightfile-batch /path/to/images --before 30dYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
before: 30d7日〜30日前に更新されたファイル
コマンドライン:
lightfile-batch /path/to/images --after 30d --before 7dYAML設定ファイル:
batch:
fileSystem: local
dir: /path/to/images
after: 30d
before: 7d時間単位: d (日), h (時間), m (分)