LightFile NextLightFile Next

機能比較表

旧LightFileとLightFile Batchの機能を詳細に比較

旧LightFile(v6.0.0未満)と新しいLightFile Batchの機能を詳細に比較します。

概要

項目旧LightFile (< v6.0.0)LightFile Batch (≥ v6.0.0)
実行ファイル名lightfilelightfile-batch
実装言語Node.jsGo
主な用途バッチ処理全般定期的なバッチ処理
対応環境ローカル, リモートFSローカル, リモートFS
処理履歴管理KVSKVS

LightFile Batchは旧LightFileの後継として、バッチ処理に必要な機能を継承しつつ、Go言語による高速化と新機能を追加しています。

基本機能

画像最適化

機能旧LightFileLightFile Batch備考
JPEG最適化変更なし
PNG最適化✅ (v4+)変更なし
GIF最適化非対応
WebP最適化非対応
品質設定(3段階)low/medium/high
JPEG個別品質設定--jpeg-quality--jpeg-quality変更なし
PNG個別品質設定--png-quality--png-quality変更なし
プログレッシブJPEG自動適用
メタデータ最適化自動適用

画像最適化のコア機能に変更はありません。品質設定や個別の画質調整も引き続き利用できます。

処理モード

機能旧LightFileLightFile Batch備考
上書きモード元ファイルを最適化
ドライランモード--dry-run--dry-run, -n短縮形追加
並列処理✅ デフォルト--concurrency N, -j N明示的に指定
順次処理--serial✅ デフォルトデフォルト動作が変更

対応ファイルシステム

ファイルシステム旧LightFileLightFile Batch備考
ローカルファイルシステム変更なし
FTP変更なし
FTPS(明示的TLS)変更なし
FTPS(暗黙的TLS)新機能Batch新機能
SFTP変更なし
WebDAV変更なし
S3(AWS)変更なし
S3互換ストレージMinIO等に対応

LightFile Batchは旧LightFileと同様にリモートファイルシステムに対応しています。さらに、**FTPS(暗黙的TLS)**への対応が追加されました。

サブコマンド方式(新方式)

旧版の--file-systemオプションがサブコマンドに変更されました:

ファイルシステム旧LightFileLightFile Batch
ローカル--file-system locallocalサブコマンド
FTP--file-system ftpftpサブコマンド
SFTP--file-system sftpsftpサブコマンド
WebDAV--file-system webdavwebdavサブコマンド
S3--file-system s3s3サブコマンド
通知テスト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

ファイルフィルタリング

機能旧LightFileLightFile 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オプションが新たに追加され、より柔軟なファイルフィルタリングが可能になりました。

処理済みファイルの管理

機能旧LightFileLightFile 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

詳細はインデックスファイルを参照してください。

バックアップ機能

機能旧LightFileLightFile 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

詳細はバックアップ機能を参照してください。

ログ・進捗表示

機能旧LightFileLightFile Batch備考
ログレベル設定--logging--log-levelオプション名変更
デバッグログ--logging debug--log-level debug変更なし
静音モード--logging quiet--quiet, -q短縮形追加
詳細ログ--verbose, -v新機能
進捗表示--progress✅ 自動自動的に表示
進捗表示間隔指定--log-progress-interval新機能
ログファイル保存標準出力をリダイレクト
ログローテーション--logs-file-size廃止

詳細はログ設定を参照してください。

通知機能

機能旧LightFileLightFile 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

詳細は通知機能を参照してください。

設定管理

機能旧LightFileLightFile 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/XXX
lightfile-batch --config settings.yml

詳細はYAML設定ファイルを参照してください。

ライセンス管理

機能旧LightFileLightFile Batch備考
シリアルコード認証--serial廃止
トークン認証--license-token新方式
トークンファイル~/.lightfile-next/token新方式
ライセンス検証タイミング起動時起動時変更なし

ライセンストークンの指定方法

優先順位:

  1. コマンドラインオプション: --license-token <token>
  2. 環境変数: LF_TOKEN
  3. ファイル: ~/.lightfile-next/token

詳細はライセンス認証を参照してください。

システムディレクトリ

機能旧LightFileLightFile Batch備考
システムディレクトリ~/.lightfile/~/.lightfile-next/batch/パス変更
プロジェクトディレクトリ--project-dir--project-dir変更なし
バックアップディレクトリ--backup-dir--backup-dir変更なし
ログディレクトリ--logs-dir廃止
キャッシュディレクトリ--cache-dir廃止
セッションディレクトリ--session-dir新機能
セッション保持期間--session-retention-days新機能

詳細はシステムディレクトリを参照してください。

エラーハンドリング

機能旧LightFileLightFile Batch備考
自動リトライ✅ 3回✅ 自動自動実行(設定不可)
リトライ回数設定--file-error-retry廃止(自動実行のみ)
サイズ検証--verify-size廃止
HTTPサイズ検証--http-verify廃止

自動リトライは設定不要で自動的に実行されます。

高度な機能

機能旧LightFileLightFile Batch備考
プロキシ設定--proxy✅ 環境変数HTTP_PROXY/HTTPS_PROXY
排他制御--pid✅ 自動(--non-exclusiveで無効化)自動化
排他制御無効化--non-exclusive新機能
分析モード--analyze廃止
高速スキャン--fast-scan廃止
フォーマット変換--format廃止

性能

項目旧LightFileLightFile Batch改善度
起動速度遅い(Node.js)高速(Go)⚡ 大幅改善
メモリ使用量高い(Node.js)低い(Go)⚡ 大幅改善
処理速度普通高速⚡ 改善
依存関係Node.js必須なし⚡ 完全なバイナリ

Go言語で実装されたLightFile Batchは、Node.js版と比較して起動が高速で、メモリ使用量も大幅に削減されています。

主な改善点

✅ 新機能

  1. YAML設定ファイル対応

    lightfile-batch --config settings.yml
  2. S3バックアップ

    lightfile-batch local --dir /images \
      --backup-fs s3 --backup-s3-bucket my-backup
  3. バックアップモード(strict/loose/none)

    lightfile-batch local --dir /images --backup-mode strict
  4. リモートインデックスファイル

    lightfile-batch s3 --s3-bucket my-bucket \
      --index-remote-file /index/s3-index.json
  5. 通知テストサブコマンド

    lightfile-batch test-notify --notify-slack-webhook-url https://...
  6. 完全なバイナリプログラム化

    • Node.js不要
    • 高速起動と省メモリ
    • 依存関係なし
  7. 多言語サポート

    LANG=ja lightfile-batch local --dir /images

⚙️ 改善された機能

  1. サブコマンド方式 - より直感的なコマンド構造
  2. 自動排他制御 - PIDファイル管理が不要
  3. 自動リトライ - エラー時の自動リトライ
  4. プロキシ設定 - 環境変数で簡単設定

❌ 廃止機能

  1. シリアルコード認証 → トークンベースに変更
  2. リトライ回数設定 → 自動実行(設定不可)
  3. 分析モード → 廃止
  4. HTTPサイズ検証 → 廃止
  5. ログローテーション → 廃止(標準出力リダイレクト推奨)

LightFile Batchへの移行を推奨するケース

以下のケースでは、LightFile Batchへの移行を推奨します:

  • 定期的なバッチ処理を行っている - 処理済みファイルのスキップで効率化
  • リモートファイルシステムを使用している - FTP/SFTP/WebDAV/S3対応
  • バックアップや通知機能が必要 - 自動バックアップ、Email/Slack通知
  • 処理済みファイルのスキップで効率化したい - KVSによる履歴管理
  • YAML設定ファイルで管理したい - 複雑な設定を一元管理

LightFile Shotへの移行を検討すべきケース

以下のケースでは、代わりにLightFile Shotへの移行を検討してください:

  • ⚠️ ワンタイム処理が中心 - 定期的なバッチ処理ではない
  • ⚠️ ローカルファイルシステムのみを使用 - リモートファイルシステムは不要
  • ⚠️ シンプルな設定で動作させたい - 複雑な設定ファイルは不要
  • ⚠️ 複製モードを使いたい - 元ファイルを保持しつつ最適化版を作成

詳細はLightFile Shotへの移行を参照してください。

次のステップ