ファイル処理とフィルタ
ファイル処理、フィルタリング、トラブルシューティングのベストプラクティス
ファイル処理関連
ファイルが処理されない
症状: 処理対象ファイルが0件と表示される。
確認すべきポイント:
-
ディレクトリを確認:
ls /path/to/images -
拡張子を確認:
# 対応している拡張子を明示的に指定 lightfile-batch local /path/to/images --ext .jpg,.jpeg,.jfif,.png -
ファイルサイズを確認:
# サイズ制限を緩和 lightfile-batch local /path/to/images --min-size 1kb --max-size 100mb -
ドライランで確認:
lightfile-batch local /path/to/images --dry-run --verbose -
除外パターンを確認:
# 除外パターンを削除して実行 lightfile-batch local /path/to/images
ファイルの最適化に失敗
症状:
ファイルの最適化に失敗しました: /path/to/image.jpg (エラー: unsupported format)診断方法:
-
ファイル形式を確認:
file /path/to/image.jpg -
破損チェック:
# ImageMagickがあれば identify /path/to/image.jpg -
別の画像ビューアで開けるか確認
-
詳細ログで原因を特定:
lightfile-batch local /path/to/images --verbose --log-level debug
ファイルの書き込みに失敗
症状:
最適化されたファイルの書き出しに失敗しました: /path/to/image.jpg確認すべきポイント:
-
ディスク容量を確認:
# Linux/macOS df -h /path/to/images # Windows dir /path/to/images -
パーミッションを確認:
# Linux/macOS ls -l /path/to/image.jpg # 書き込み権限を付与 chmod u+w /path/to/image.jpg -
ディレクトリのパーミッションを確認:
ls -ld /path/to/images chmod u+w /path/to/images
すべてのファイルがスキップされる
症状: すべてのファイルが「既に最適化されています」とスキップされる。
対処法:
-
品質設定を変更:
# より強力な圧縮を試す lightfile-batch local /path/to/images --quality low -
詳細ログで確認:
lightfile-batch local /path/to/images --verbose -
メモリ(KVS)をクリア:
# プロジェクトのメモリディレクトリを削除 rm -rf ~/.lightfile-next/batch/*/memory lightfile-batch local /path/to/images
その他の問題
進捗が更新されない
症状: 進捗表示がフリーズしているように見える。
よくある原因: 大きなファイルの処理中、または並列処理数が多すぎる場合に発生します。
対処法:
-
詳細ログで確認:
lightfile-batch local /path/to/images --verbose -
並列処理数を調整:
lightfile-batch local /path/to/images --concurrency 2 -
プロセスが動いているか確認:
# Linux/macOS ps aux | grep lightfile-batch # Windows tasklist | findstr lightfile-batch
Ctrl+C で止まらない
症状: Ctrl+C を押しても処理が終了しない。
これは正常な動作です: 処理中のファイルが完了するまで待機しています(通常数秒〜数十秒)。
すぐに停止したい場合:
# Linux/macOS
killall -9 lightfile-batch
# Windows
taskkill /F /IM lightfile-batch.exe注意: 強制終了すると、処理中のファイルが破損する可能性があります。
トラブルシューティングのベストプラクティス
1. まずドライランで確認
lightfile-batch local /path/to/images --dry-run --verbose2. 詳細ログを有効化
lightfile-batch local /path/to/images --log-level debug --verbose3. 段階的に設定を追加
# 1. 最もシンプルな実行
lightfile-batch local /path/to/images
# 2. フィルタを追加
lightfile-batch local /path/to/images --min-size 10kb
# 3. 品質設定を追加
lightfile-batch local /path/to/images --min-size 10kb --quality high
# 4. 並列処理を追加
lightfile-batch local /path/to/images --min-size 10kb --quality high --concurrency 44. YAML設定ファイルをテスト
# YAML構文を確認
cat config.yaml | python -m yaml
# 設定ファイルで実行
lightfile-batch --config config.yaml --dry-run --verbose5. バックアップを有効化してテスト
# バックアップモードで安全にテスト
lightfile-batch local /path/to/images --backup-mode strict --dry-run