機能比較表
旧LightFileとLightFile Batchの機能を詳細に比較
旧LightFile(v6.0.0未満)と新しいLightFile Batchの機能を詳細に比較します。
概要
| 項目 | 旧LightFile (< v6.0.0) | LightFile Batch (≥ v6.0.0) |
|---|---|---|
| 実行ファイル名 | lightfile | lightfile-batch |
| 実装言語 | Node.js | Go |
| 主な用途 | バッチ処理全般 | 定期的なバッチ処理 |
| 対応環境 | ローカル, リモートFS | ローカル, リモートFS |
| 処理履歴管理 | KVS | KVS |
LightFile Batchは旧LightFileの後継として、バッチ処理に必要な機能を継承しつつ、Go言語による高速化と新機能を追加しています。
基本機能
画像最適化
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| JPEG最適化 | ✅ | ✅ | 変更なし |
| PNG最適化 | ✅ (v4+) | ✅ | 変更なし |
| GIF最適化 | ❌ | ❌ | 非対応 |
| WebP最適化 | ❌ | ❌ | 非対応 |
| 品質設定(3段階) | ✅ | ✅ | low/medium/high |
| JPEG個別品質設定 | ✅ --jpeg-quality | ✅ --jpeg-quality | 変更なし |
| PNG個別品質設定 | ✅ --png-quality | ✅ --png-quality | 変更なし |
| プログレッシブJPEG | ✅ | ✅ | 自動適用 |
| メタデータ最適化 | ✅ | ✅ | 自動適用 |
画像最適化のコア機能に変更はありません。品質設定や個別の画質調整も引き続き利用できます。
処理モード
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| 上書きモード | ✅ | ✅ | 元ファイルを最適化 |
| ドライランモード | ✅ --dry-run | ✅ --dry-run, -n | 短縮形追加 |
| 並列処理 | ✅ デフォルト | ✅ --concurrency N, -j N | 明示的に指定 |
| 順次処理 | ✅ --serial | ✅ デフォルト | デフォルト動作が変更 |
対応ファイルシステム
| ファイルシステム | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| ローカルファイルシステム | ✅ | ✅ | 変更なし |
| FTP | ✅ | ✅ | 変更なし |
| FTPS(明示的TLS) | ✅ | ✅ | 変更なし |
| FTPS(暗黙的TLS) | ❌ | ✅ 新機能 | Batch新機能 |
| SFTP | ✅ | ✅ | 変更なし |
| WebDAV | ✅ | ✅ | 変更なし |
| S3(AWS) | ✅ | ✅ | 変更なし |
| S3互換ストレージ | ✅ | ✅ | MinIO等に対応 |
LightFile Batchは旧LightFileと同様にリモートファイルシステムに対応しています。さらに、**FTPS(暗黙的TLS)**への対応が追加されました。
サブコマンド方式(新方式)
旧版の--file-systemオプションがサブコマンドに変更されました:
| ファイルシステム | 旧LightFile | LightFile Batch |
|---|---|---|
| ローカル | --file-system local | localサブコマンド |
| FTP | --file-system ftp | ftpサブコマンド |
| SFTP | --file-system sftp | sftpサブコマンド |
| WebDAV | --file-system webdav | webdavサブコマンド |
| S3 | --file-system s3 | s3サブコマンド |
| 通知テスト | ❌ | test-notifyサブコマンド 新機能 |
例:
# 旧LightFile
lightfile --file-system ftp --host ftp.example.com --dir /images
# LightFile Batch
lightfile-batch ftp --ftp-host ftp.example.com --ftp-dir /imagesファイルフィルタリング
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| ファイルサイズ(最小) | ✅ --file-size | ✅ --min-size | オプション名変更 |
| ファイルサイズ(最大) | ✅ --file-size | ✅ --max-size | オプション名変更 |
| 拡張子フィルタ | ✅ --ext | ✅ --ext | 変更なし |
| Glob(include) | ✅ --only | ✅ --include | オプション名変更 |
| Glob(exclude) | ✅ --exclude | ✅ --exclude | 変更なし |
| 更新日時(新しいファイル) | ✅ --recent | ✅ --after | オプション名変更 |
| 更新日時(古いファイル) | ❌ | ✅ --before | 新機能 |
| 処理件数制限 | ❌ | ✅ --limit | 新機能 |
--beforeオプションと--limitオプションが新たに追加され、より柔軟なファイルフィルタリングが可能になりました。
処理済みファイルの管理
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| KVS(処理済み記録) | ✅ | ✅ | 変更なし |
| メモリディレクトリ | ✅ | ✅ | 変更なし |
| 処理済みスキップ | ✅ | ✅ | 変更なし |
| インデックスファイル(ローカル) | ✅ --index-file | ✅ --index-file | 変更なし |
| インデックスファイル(リモート) | ❌ | ✅ --index-remote-file | 新機能 |
| ローカルインデックス | ✅ --local-index | ✅ --index-file | オプション名変更 |
| インデックス自動削除 | ✅ --refresh-local-index | ❌ | 廃止 |
インデックスファイル(リモート)新機能
S3内のインデックスファイルを使用して、処理対象ファイルをフィルタリングできます。
lightfile-batch s3 --s3-bucket my-bucket \
--index-remote-file /index/s3-index.json詳細はインデックスファイルを参照してください。
バックアップ機能
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| 自動バックアップ(ローカル) | ✅ | ✅ | 変更なし |
| 自動バックアップ(S3) | ❌ | ✅ 新機能 | Batch新機能 |
| バックアップディレクトリ指定 | ✅ --backup-dir | ✅ --backup-dir | 変更なし |
| バックアップ無効化 | ✅ --no-backup | ✅ --backup-mode none | オプション名変更 |
| バックアップモード | ❌ | ✅ --backup-mode | 新機能: strict/loose/none |
| ディスク容量監視 | ❌ | ✅ | 新機能 |
| 空き容量しきい値 | ❌ | ✅ --backup-free-space-threshold | 新機能 |
| 最大バックアップサイズ | ❌ | ✅ --backup-max-total-size | 新機能 |
| 古いバックアップ自動削除 | ❌ | ✅ | 新機能 |
バックアップモード(新機能)
バックアップの動作を3つのモードから選択できます:
- strict: バックアップが失敗したら最適化を中止
- loose: バックアップが失敗しても最適化を続行
- none: バックアップを行わない
# strictモード(推奨)
lightfile-batch local --dir /images --backup-mode strict
# S3にバックアップ
lightfile-batch local --dir /images \
--backup-fs s3 \
--backup-s3-bucket my-backup-bucket詳細はバックアップ機能を参照してください。
ログ・進捗表示
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| ログレベル設定 | ✅ --logging | ✅ --log-level | オプション名変更 |
| デバッグログ | ✅ --logging debug | ✅ --log-level debug | 変更なし |
| 静音モード | ✅ --logging quiet | ✅ --quiet, -q | 短縮形追加 |
| 詳細ログ | ❌ | ✅ --verbose, -v | 新機能 |
| 進捗表示 | ✅ --progress | ✅ 自動 | 自動的に表示 |
| 進捗表示間隔指定 | ❌ | ✅ --log-progress-interval | 新機能 |
| ログファイル保存 | ✅ | ✅ | 標準出力をリダイレクト |
| ログローテーション | ✅ --logs-file-size | ❌ | 廃止 |
詳細はログ設定を参照してください。
通知機能
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| Email通知(SMTP) | ✅ --fatal-notify-email | ✅ --notify-smtp-* | オプション名変更 |
| 簡易Email通知(Lambda) | ❌ | ✅ --notify-email-* | 新機能 |
| Slack通知 | ✅ --fatal-notify-slack-* | ✅ --notify-slack-* | オプション名変更 |
| Slackログ送信 | ✅ --slack-log | ❌ | 廃止 |
| Slackチャンネル指定 | ✅ | ✅ --notify-slack-channel | オプション名変更 |
| Lambda通知 | ❌ | ✅ --notify-lambda-* | 新機能 |
| 通知テスト送信 | ❌ | ✅ test-notify | 新機能: サブコマンド |
| 通知タイミング | 致命的エラー時のみ | 致命的エラー時のみ | 変更なし |
通知テストサブコマンド(新機能)
通知設定が正しく動作するかをテストできます。
# Slack通知のテスト
lightfile-batch test-notify \
--notify-slack-webhook-url https://hooks.slack.com/services/XXX
# Email通知のテスト
lightfile-batch test-notify \
--notify-smtp-host smtp.example.com \
--notify-smtp-from noreply@example.com \
--notify-email-to admin@example.com詳細は通知機能を参照してください。
設定管理
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| コマンドラインオプション | ✅ | ✅ | 変更なし |
| YAML設定ファイル | ❌ | ✅ --config | 新機能 |
| 複数設定ファイル | ❌ | ✅ -c a.yaml -c b.yaml | 新機能 |
| 環境変数(トークン) | ❌ | ✅ LF_TOKEN | 新方式 |
| 環境変数(ログレベル) | ✅ | ✅ LOG_LEVEL | 変更なし |
| 環境変数(言語) | ❌ | ✅ LANG | 新機能 |
| 設定ファイル(旧) | ✅ .env形式 | ❌ | 廃止 |
YAML設定ファイル(新機能)
すべてのオプションをYAML設定ファイルで指定できます。
# settings.yml
license:
token: username!base64_signature
local:
dir: /path/to/images
quality: high
filtering:
minSize: 10kb
maxSize: 5mb
backup:
mode: strict
fs: s3
s3:
bucket: my-backup-bucket
prefix: backups/
notifications:
slack:
webhookUrl: https://hooks.slack.com/services/XXXlightfile-batch --config settings.yml詳細はYAML設定ファイルを参照してください。
ライセンス管理
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| シリアルコード認証 | ✅ --serial | ❌ | 廃止 |
| トークン認証 | ❌ | ✅ --license-token | 新方式 |
| トークンファイル | ❌ | ✅ ~/.lightfile-next/token | 新方式 |
| ライセンス検証タイミング | 起動時 | 起動時 | 変更なし |
ライセンストークンの指定方法
優先順位:
- コマンドラインオプション:
--license-token <token> - 環境変数:
LF_TOKEN - ファイル:
~/.lightfile-next/token
詳細はライセンス認証を参照してください。
システムディレクトリ
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| システムディレクトリ | ✅ ~/.lightfile/ | ✅ ~/.lightfile-next/batch/ | パス変更 |
| プロジェクトディレクトリ | ✅ --project-dir | ✅ --project-dir | 変更なし |
| バックアップディレクトリ | ✅ --backup-dir | ✅ --backup-dir | 変更なし |
| ログディレクトリ | ✅ --logs-dir | ❌ | 廃止 |
| キャッシュディレクトリ | ✅ --cache-dir | ❌ | 廃止 |
| セッションディレクトリ | ❌ | ✅ --session-dir | 新機能 |
| セッション保持期間 | ❌ | ✅ --session-retention-days | 新機能 |
詳細はシステムディレクトリを参照してください。
エラーハンドリング
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| 自動リトライ | ✅ 3回 | ✅ 自動 | 自動実行(設定不可) |
| リトライ回数設定 | ✅ --file-error-retry | ❌ | 廃止(自動実行のみ) |
| サイズ検証 | ✅ --verify-size | ❌ | 廃止 |
| HTTPサイズ検証 | ✅ --http-verify | ❌ | 廃止 |
自動リトライは設定不要で自動的に実行されます。
高度な機能
| 機能 | 旧LightFile | LightFile Batch | 備考 |
|---|---|---|---|
| プロキシ設定 | ✅ --proxy | ✅ 環境変数 | HTTP_PROXY/HTTPS_PROXY |
| 排他制御 | ✅ --pid | ✅ 自動(--non-exclusiveで無効化) | 自動化 |
| 排他制御無効化 | ❌ | ✅ --non-exclusive | 新機能 |
| 分析モード | ✅ --analyze | ❌ | 廃止 |
| 高速スキャン | ✅ --fast-scan | ❌ | 廃止 |
| フォーマット変換 | ✅ --format | ❌ | 廃止 |
性能
| 項目 | 旧LightFile | LightFile Batch | 改善度 |
|---|---|---|---|
| 起動速度 | 遅い(Node.js) | 高速(Go) | ⚡ 大幅改善 |
| メモリ使用量 | 高い(Node.js) | 低い(Go) | ⚡ 大幅改善 |
| 処理速度 | 普通 | 高速 | ⚡ 改善 |
| 依存関係 | Node.js必須 | なし | ⚡ 完全なバイナリ |
Go言語で実装されたLightFile Batchは、Node.js版と比較して起動が高速で、メモリ使用量も大幅に削減されています。
主な改善点
✅ 新機能
-
YAML設定ファイル対応
lightfile-batch --config settings.yml -
S3バックアップ
lightfile-batch local --dir /images \ --backup-fs s3 --backup-s3-bucket my-backup -
バックアップモード(strict/loose/none)
lightfile-batch local --dir /images --backup-mode strict -
リモートインデックスファイル
lightfile-batch s3 --s3-bucket my-bucket \ --index-remote-file /index/s3-index.json -
通知テストサブコマンド
lightfile-batch test-notify --notify-slack-webhook-url https://... -
完全なバイナリプログラム化
- Node.js不要
- 高速起動と省メモリ
- 依存関係なし
-
多言語サポート
LANG=ja lightfile-batch local --dir /images
⚙️ 改善された機能
- サブコマンド方式 - より直感的なコマンド構造
- 自動排他制御 - PIDファイル管理が不要
- 自動リトライ - エラー時の自動リトライ
- プロキシ設定 - 環境変数で簡単設定
❌ 廃止機能
- シリアルコード認証 → トークンベースに変更
- リトライ回数設定 → 自動実行(設定不可)
- 分析モード → 廃止
- HTTPサイズ検証 → 廃止
- ログローテーション → 廃止(標準出力リダイレクト推奨)
LightFile Batchへの移行を推奨するケース
以下のケースでは、LightFile Batchへの移行を推奨します:
- ✅ 定期的なバッチ処理を行っている - 処理済みファイルのスキップで効率化
- ✅ リモートファイルシステムを使用している - FTP/SFTP/WebDAV/S3対応
- ✅ バックアップや通知機能が必要 - 自動バックアップ、Email/Slack通知
- ✅ 処理済みファイルのスキップで効率化したい - KVSによる履歴管理
- ✅ YAML設定ファイルで管理したい - 複雑な設定を一元管理
LightFile Shotへの移行を検討すべきケース
以下のケースでは、代わりにLightFile Shotへの移行を検討してください:
- ⚠️ ワンタイム処理が中心 - 定期的なバッチ処理ではない
- ⚠️ ローカルファイルシステムのみを使用 - リモートファイルシステムは不要
- ⚠️ シンプルな設定で動作させたい - 複雑な設定ファイルは不要
- ⚠️ 複製モードを使いたい - 元ファイルを保持しつつ最適化版を作成
詳細はLightFile Shotへの移行を参照してください。
次のステップ
- 旧LightFileからの移行 - 移行手順の詳細
- コマンドの変更点 - コマンドラインオプションの対応表
- クイックスタート - LightFile Batchの基本的な使い方