LightFile NextLightFile Next

LightFile Shotへの移行

旧LightFileからLightFile Shotへの移行ガイド

このガイドでは、旧LightFile(v6.0.0未満)からLightFile Shot(v6.0.0以上)への移行方法を説明します。

LightFile Shotの位置づけ

LightFile Shotは、ワンタイム処理に特化した軽量CLIツールです。旧LightFileのすべての機能を引き継ぐのではなく、シンプルさと軽量さを重視して設計されています。

  • 主な用途: ユーザーアップロード画像の最適化、CI/CDパイプライン、手動実行
  • 対応環境: ローカルファイルシステムのみ
  • 特徴: シンプル、高速起動、低メモリ、処理履歴なし

この移行ガイドが適している方

  • ワンタイム処理が中心の用途
  • ローカルファイルシステムのみを使用
  • シンプルな設定で動作させたい
  • 軽量で高速なツールを求めている

もし定期的なバッチ処理やリモートファイルシステムが必要な場合は、LightFile Batchへの移行ガイドを参照してください。

インストール方法の充実

旧LightFileでは実行ファイルのダウンロードのみでしたが、LightFile Shotでは複数のパッケージマネージャーおよびインストーラーから選択できます:

  • Linux: APT (Ubuntu/Debian)、YUM/DNF (RHEL/CentOS/Fedora)、Shell Script、Direct Binary
  • macOS: Shell Script、Direct Binary
  • Windows: Chocolatey、Scoop、PowerShell Script、Direct Binary

詳細はインストールガイドを参照してください。

機能制限について

LightFile Shotは、シンプルさと軽量さを重視し、旧LightFileの多くの機能に対応していません。以下の表で機能の対応状況を確認してください。

機能対応表

機能カテゴリ旧LightFileLightFile Shot備考
基本機能
JPEG最適化引き続き対応
PNG最適化引き続き対応
品質設定(低・中・高)引き続き対応
並列処理引き続き対応
ドライランモード引き続き対応
動作モード
上書きモード元ファイルを最適化
複製モード新機能: 別ディレクトリに保存
対応ファイルシステム
ローカルファイルシステム引き続き対応
FTP/FTPSShot非対応
SFTPShot非対応
WebDAVShot非対応
S3/S3互換ストレージShot非対応
ファイルフィルタリング
ファイルサイズフィルタ--min-size, --max-size
拡張子フィルタ--ext
Globパターン(include)--include
Globパターン(exclude)--exclude
更新日時フィルタShot非対応
処理済みファイル管理
KVSによる処理済み管理Shot非対応(毎回すべて処理)
インデックスファイルShot非対応
バックアップ
自動バックアップ(ローカル)Shot非対応
自動バックアップ(S3)Shot非対応
バックアップモード設定Shot非対応
ディスク容量管理Shot非対応
ログ・通知
進捗表示引き続き対応
ログレベル設定--log-level
ジャーナル機能(NDJSON)新機能: --journal
Email通知(SMTP)Shot非対応
簡易Email通知Shot非対応
Slack通知Shot非対応
設定管理
コマンドラインオプション引き続き対応
YAML設定ファイル両バージョンとも非対応
環境変数LF_TOKEN, LOG_LEVEL
その他
ライセンス管理トークンベースに変更
シリアルコード認証Shot非対応(トークンに変更)
分析モード(--analyzeShot非対応
HTTPサイズ検証Shot非対応
エラーリトライ✅ 設定可能Shot非対応

重要な機能制限のまとめ

❌ Shot非対応の主要機能

  1. リモートファイルシステムのサポート

    • FTP/FTPS、SFTP、WebDAV、S3には非対応
    • ローカルファイルシステムのみ対応
  2. 処理済みファイルの管理

    • KVSによる処理済み管理に非対応
    • 毎回すべてのファイルを対象に処理(ただし、最適化済みファイルは自動的にスキップ)
  3. 自動バックアップ機能

    • 自動バックアップ機能に非対応
    • 複製モード(lightfile-shot /source /dest)で元ファイル保持が可能
  4. 通知機能

    • Email通知(SMTP/簡易Email通知)に非対応
    • Slack通知に非対応
    • ジャーナル機能(--journal)でログを記録し、外部スクリプトで通知可能
  5. インデックスファイル

    • インデックスファイルからの処理対象指定に非対応
  6. 更新日時フィルタ

    • --after/--beforeオプションに非対応
    • findコマンドなどで事前にフィルタリング可能

✅ 新しく追加された機能

  1. 複製モード

    • 元ファイルを変更せず、別ディレクトリに最適化版を保存
    • lightfile-shot /source /destination
  2. ジャーナル機能

    • 処理結果を詳細にNDJSON形式で記録
    • --journal result.ndjson

基本的な使い方

ライセンストークンのセットアップ

旧LightFileのシリアルコードは使用できません。新しいライセンストークンが必要です。

# ファイルに保存(推奨)
mkdir -p ~/.lightfile-next
echo "your-license-token" > ~/.lightfile-next/token

# または環境変数で設定
export LF_TOKEN="your-license-token"

基本コマンド

# 上書きモード(元ファイルを最適化)
lightfile-shot /path/to/images

# 複製モード(別ディレクトリに保存)
lightfile-shot /source /destination

# 並列処理
lightfile-shot /path/to/images -j 4

移行例

例1: 基本的な移行

旧LightFile

lightfile --dir /var/www/images \
  --serial ABC123 \
  --quality medium \
  --exclude "**/thumbnails/**"

LightFile Shot

# ライセンストークンを事前設定
echo "your-token" > ~/.lightfile-next/token

# 実行
lightfile-shot /var/www/images \
  --quality medium \
  --exclude "**/thumbnails/**"

変更点:

  • --serial → ライセンストークンファイル
  • --dirオプション → 第1引数
  • 実行ファイル名がlightfile-shotに変更

例2: 複製モード(ユーザーアップロード画像)

旧LightFile

lightfile --dir /tmp/uploads \
  --serial ABC123 \
  --quality high \
  --no-backup

LightFile Shot

# 複製モード:元ファイルを保持しつつ最適化版を別保存
lightfile-shot /tmp/uploads /var/www/public/images --quality high

変更点:

  • --no-backupオプション不要(バックアップ機能非対応)
  • 複製モードで元ファイル保持が可能

次のステップ

もし高度な機能が必要な場合は、LightFile Batchへの移行ガイドも検討してください。