LightFile NextLightFile Next

LightFile Batchへの移行

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

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

LightFile Batchの位置づけ

LightFile Batchは、定期的なバッチ処理に特化したCLIツールで、旧LightFile Command版の直接の後継製品です。旧版の主要機能を継承しつつ、性能向上と機能強化を実現しています。

  • 主な用途: cron/スケジューラによる定期実行、継続的な画像最適化
  • 対応環境: ローカル、FTP、SFTP、WebDAV、S3/S3互換ストレージ
  • 特徴: 処理済みファイルの管理、バックアップ機能、進捗表示、エラー通知

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

  • 定期的なバッチ処理を行っている
  • リモートファイルシステムを使用している
  • バックアップや通知機能が必要
  • 処理済みファイルのスキップで効率化したい

もしワンタイム処理が中心でシンプルなツールを求めている場合は、LightFile Shotへの移行ガイドも検討してください。

インストール方法の充実

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

  • 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

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

機能対応表

機能カテゴリ旧LightFileLightFile Batch変更内容
基本機能
JPEG最適化引き続き対応、高速化
PNG最適化引き続き対応、高速化
品質設定(低・中・高)引き続き対応
並列処理引き続き対応
ドライランモード引き続き対応
対応ファイルシステム
ローカルファイルシステムlocalサブコマンド
FTP/FTPSftpサブコマンド、暗黙的TLS対応
SFTPsftpサブコマンド
WebDAVwebdavサブコマンド
S3/S3互換ストレージs3サブコマンド
ファイルフィルタリング
ファイルサイズフィルタ--min-size, --max-size
拡張子フィルタ--ext
Globパターン(include)--include
Globパターン(exclude)--exclude
更新日時フィルタ--after, --before
処理済みファイル管理
KVSによる処理済み管理引き続き対応、高速化
インデックスファイル--index-file, --index-remote-file
ローカルインデックス--index-file
リモートインデックス新機能: --index-remote-file
バックアップ
自動バックアップ(ローカル)引き続き対応、ディスク容量管理強化
自動バックアップ(S3)新機能: S3バックアップ対応
バックアップモード設定新機能: strict/loose/none
ディスク容量管理新機能: 自動削除機能
ログ・通知
進捗表示強化、よりリアルタイムに
ログレベル設定--log-level
Slack通知--notify-slack-webhook-url
Email通知(SMTP)--notify-smtp-*
簡易Email通知新機能: --notify-email-*
通知のテスト送信新機能: test-notifyサブコマンド
設定管理
コマンドラインオプション引き続き対応
YAML設定ファイル新機能: --config
環境変数LF_TOKEN, LOG_LEVEL
その他
ライセンス管理トークンベースに変更
シリアルコード認証廃止: トークンに変更
分析モード(--analyze廃止
HTTPサイズ検証廃止
エラーリトライ✅ 設定可能✅ 自動自動実行(設定不可)
排他制御--pid✅ 自動旧版はPIDファイル指定、Batchは自動実行
プロキシ設定--proxy✅ 環境変数HTTP_PROXY/HTTPS_PROXYで対応

新しく追加された機能

1. サブコマンド方式

ファイルシステムごとに最適化されたサブコマンドを提供します。

lightfile-batch local /path/to/images       # ローカル
lightfile-batch s3 --s3-bucket my-bucket     # S3
lightfile-batch ftp --ftp-host ftp.example.com  # FTP

2. YAML設定ファイル

複雑な設定をYAMLファイルで管理できます。

dir:
  system: ~/.lightfile-next/batch
backup:
  mode: strict
  fileSystem: s3
  s3:
    bucket: my-backup-bucket
optimization:
  quality: medium

3. バックアップの強化

  • S3バケットへのバックアップ対応
  • バックアップモード(strict/loose/none
  • ディスク容量の自動管理

重要な注意点: LightFile Batchは、既にLightFileで最適化済みのファイルのバックアップを作成しません。旧LightFileで作成したバックアップは引き続き保持することを推奨します。詳細はバックアップ概要を参照してください。

4. リモートインデックスファイル

S3バケット内のインデックスファイルを直接読み込めます。

lightfile-batch s3 \
  --s3-bucket my-bucket \
  --s3-acl private \
  --index-remote-file index.tsv

5. 通知のテスト送信

test-notifyサブコマンドで通知設定をテストできます。

lightfile-batch test-notify \
  --notify-smtp-to admin@example.com \
  --notify-smtp-host smtp.example.com

廃止された機能

1. 分析モード(--analyze

Excel用のTSV分析ファイルを生成する機能は廃止されました。

代替案: ジャーナル機能や外部ツールで分析

2. HTTPサイズ検証(--http-verify

HTTP経由でファイルサイズを検証する機能は廃止されました。

3. リトライ回数設定(--file-error-retry

リトライ回数を設定する機能は廃止されました。エラーリトライ自体は自動的に実行されます。

4. 排他制御のPIDファイル指定(--pid

排他制御のためのPIDファイルパスを指定する機能は廃止されました。排他制御は自動的に実行され、--non-exclusiveで無効化できます。

5. プロキシ設定オプション(--proxy

--proxyオプションは廃止されました。

代替案: 環境変数HTTP_PROXY/HTTPS_PROXYを使用

コマンドの変更点

基本構文の変更

旧LightFile

lightfile --file-system <type> --dir <path> [options]

LightFile Batch

lightfile-batch <サブコマン> <path> [options]

変更点:

  • --file-systemオプション → サブコマンドに変更
  • --dirオプション → 位置引数に変更
  • 実行ファイル名がlightfile-batchに変更

ライセンス認証の変更

旧LightFile

--serial <code>

LightFile Batch

--license-token <token>  # または -l

優先順位:

  1. --license-token
  2. 環境変数LF_TOKEN
  3. ファイル~/.lightfile-next/token

ファイルシステム指定の変更

旧LightFile

lightfile --file-system local --dir /path/to/images
lightfile --file-system s3 --s3-bucket my-bucket --s3-region us-west-2
lightfile --file-system ftp --host ftp.example.com --user myuser

LightFile Batch

lightfile-batch local /path/to/images
lightfile-batch s3 --s3-bucket my-bucket --s3-region us-west-2
lightfile-batch ftp --ftp-host ftp.example.com --ftp-user myuser

変更点:

  • サブコマンド方式の採用
  • オプション名の変更(例: --host--ftp-host

バックアップオプションの変更

旧LightFile

--no-backup                    # バックアップ無効
--backup-dir /path/to/backup   # バックアップ先ディレクトリ

LightFile Batch

--backup-mode none             # バックアップ無効
--no-backup                    # バックアップ無効(エイリアス)
--backup-dir /path/to/backup   # ローカルバックアップ先

# S3バックアップ(新機能)
--backup-fs s3 \
--backup-s3-bucket my-backup-bucket \
--backup-s3-region us-west-2

# バックアップモード(新機能)
--backup-mode strict           # 必須(デフォルト)
--backup-mode loose            # 失敗しても続行
--backup-mode none             # 無効

通知オプションの変更

旧LightFile

--fatal-notify-email "admin@example.com"
--fatal-notify-slack-webhook-url "https://..."
--slack-log "https://..."

LightFile Batch

# SMTP Email
--notify-smtp-to admin@example.com
--notify-smtp-from lightfile@example.com
--notify-smtp-host smtp.example.com

# Slack
--notify-slack-webhook-url https://...
--notify-slack-channel #alerts

# 簡易Email通知(新機能)
--notify-email-to admin@example.com
--notify-email-cc manager@example.com

変更点:

  • --fatal-notify-*--notify-* に統一
  • SMTP、簡易Email通知、Slackの通知方法を明確に分離

ログオプションの変更

旧LightFile

--logging debug
--logging quiet
--progress

LightFile Batch

--log-level debug              # ログレベル
--quiet, -q                    # 静音モード
--verbose, -v                  # 詳細ログ
--log-progress-interval 30s    # 進捗表示間隔

変更点:

  • --logging--log-level に変更
  • 進捗表示の間隔を指定可能(--log-progress-interval

並列処理オプションの変更

旧LightFile

# 自動的に並列処理
--serial  # 順次処理モード

LightFile Batch

--concurrency 4                # 並列処理数
-j 4                           # 短縮形

変更点:

  • デフォルトは順次処理(--concurrency 1
  • 並列数を明示的に指定

移行例

例1: ローカルディレクトリの定期最適化

旧LightFile

lightfile --dir /var/www/images \
  --serial ABC123 \
  --quality medium \
  --exclude "**/thumbnails/**" \
  --file-size 100kb-5mb

LightFile Batch

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

# 実行
lightfile-batch local /var/www/images \
  --quality medium \
  --exclude "**/thumbnails/**" \
  --min-size 100kb \
  --max-size 5mb

変更点:

  • lightfilelightfile-batch local
  • --serial → ライセンストークンファイル
  • --file-size--min-size/--max-size
  • --dirオプション → 位置引数

例2: S3バケットの最適化

旧LightFile

lightfile --file-system s3 \
  --serial ABC123 \
  --s3-bucket my-bucket \
  --s3-region us-west-2 \
  --s3-acl public-read \
  --quality high

LightFile Batch

lightfile-batch s3 \
  --s3-bucket my-bucket \
  --s3-region us-west-2 \
  --s3-acl public-read \
  --quality high

変更点:

  • --file-system s3s3サブコマンド
  • ライセンストークンは事前設定またはYAML設定ファイルで指定

例3: FTPサーバーの最適化

旧LightFile

lightfile --file-system ftp \
  --serial ABC123 \
  --host ftp.example.com \
  --user ftpuser \
  --password ftppassword \
  --port 21 \
  --secure \
  --exclude "**/temp/**"

LightFile Batch

lightfile-batch ftp \
  --ftp-host ftp.example.com \
  --ftp-user ftpuser \
  --ftp-password ftppassword \
  --ftp-port 21 \
  --ftp-use-tls \
  --exclude "**/temp/**"

変更点:

  • --file-system ftpftpサブコマンド
  • --host--ftp-host
  • --user--ftp-user
  • --secure--ftp-use-tls

例4: バックアップ付きローカル処理

旧LightFile

lightfile --dir /var/www/images \
  --serial ABC123 \
  --backup-dir /mnt/backup \
  --quality medium

LightFile Batch(ローカルバックアップ)

lightfile-batch local /var/www/images \
  --backup-dir /mnt/backup \
  --backup-mode strict \
  --quality medium

LightFile Batch(S3バックアップ、新機能)

lightfile-batch local /var/www/images \
  --backup-fs s3 \
  --backup-s3-bucket my-backup-bucket \
  --backup-s3-region us-west-2 \
  --backup-mode strict \
  --quality medium

変更点:

  • S3バックアップに対応(新機能)
  • バックアップモードを明示的に指定可能

例5: Slack通知付きバッチ処理

旧LightFile

lightfile --dir /var/www/images \
  --serial ABC123 \
  --fatal-notify-slack-webhook-url https://hooks.slack.com/services/YOUR/WEBHOOK/URL \
  --quality medium

LightFile Batch

lightfile-batch local /var/www/images \
  --notify-slack-webhook-url https://hooks.slack.com/services/YOUR/WEBHOOK/URL \
  --notify-slack-channel #alerts \
  --quality medium

変更点:

  • --fatal-notify-slack-webhook-url--notify-slack-webhook-url
  • チャンネル指定が可能(--notify-slack-channel

例6: 並列処理の活用

旧LightFile

# 自動的に並列処理
lightfile --dir /var/www/images --serial ABC123

LightFile Batch

# 並列処理数を明示的に指定
lightfile-batch local /var/www/images --concurrency 4

# またはCPUコア数を使用
lightfile-batch local /var/www/images -j $(nproc)

変更点:

  • デフォルトは順次処理(--concurrency 1
  • 高速化するには-jオプションで並列数を指定

YAML設定ファイルの使用

複雑な設定はYAMLファイルで管理できます。

設定ファイル例(config.yaml

# ライセンス
license:
  token: your-license-token-here

# システムディレクトリ
dir:
  system: ~/.lightfile-next/batch

# ログ設定
log:
  level: info
  progressInterval: 30s

# バックアップ設定
backup:
  mode: strict
  fileSystem: s3
  s3:
    bucket: my-backup-bucket
    region: us-west-2
    acl: private

# 最適化設定
optimization:
  quality: medium
  concurrency: 4

# 通知設定
notify:
  slack:
    webhookUrl: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
    channel: #alerts
  smtp:
    to: admin@example.com
    from: lightfile@example.com
    host: smtp.example.com
    port: 587
    user: smtp_user
    password: smtp_password
    useTLS: true

# ローカルファイルシステム設定
local:
  dir: /var/www/images
  minSize: 100kb
  maxSize: 5mb
  extensions:
    - .jpg
    - .jpeg
    - .png
  exclude:
    - "**/thumbnails/**"
    - "**/temp/**"

使用方法

# 設定ファイルを指定
lightfile-batch --config config.yaml local

# 複数の設定ファイルを指定(後から読み込まれたものが優先)
lightfile-batch -c base.yaml -c production.yaml local

cron/スケジューラでの実行

cronでの実行例

# crontab -e

# 毎時0分に実行
0 * * * * /usr/local/bin/lightfile-batch --config /etc/lightfile/config.yaml local /var/www/images >> /var/log/lightfile-batch.log 2>&1

# 毎日深夜2時に実行(バックアップ付き)
0 2 * * * /usr/local/bin/lightfile-batch --config /etc/lightfile/config.yaml local /var/www/images --backup-fs s3 --backup-s3-bucket my-backup-bucket >> /var/log/lightfile-batch.log 2>&1

systemd timerでの実行例

サービスファイル(/etc/systemd/system/lightfile-batch.service

[Unit]
Description=LightFile Batch Image Optimization
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/lightfile-batch --config /etc/lightfile/config.yaml local /var/www/images
StandardOutput=journal
StandardError=journal
User=www-data
Group=www-data

[Install]
WantedBy=multi-user.target

タイマーファイル(/etc/systemd/system/lightfile-batch.timer

[Unit]
Description=LightFile Batch Timer
Requires=lightfile-batch.service

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target

有効化

sudo systemctl daemon-reload
sudo systemctl enable lightfile-batch.timer
sudo systemctl start lightfile-batch.timer

# ステータス確認
sudo systemctl status lightfile-batch.timer

次のステップ

目次

LightFile Batchの位置づけこの移行ガイドが適している方インストール方法の充実機能対応表新しく追加された機能1. サブコマンド方式2. YAML設定ファイル3. バックアップの強化4. リモートインデックスファイル5. 通知のテスト送信廃止された機能1. 分析モード(--analyze2. HTTPサイズ検証(--http-verify3. リトライ回数設定(--file-error-retry4. 排他制御のPIDファイル指定(--pid5. プロキシ設定オプション(--proxyコマンドの変更点基本構文の変更旧LightFileLightFile Batchライセンス認証の変更旧LightFileLightFile Batchファイルシステム指定の変更旧LightFileLightFile Batchバックアップオプションの変更旧LightFileLightFile Batch通知オプションの変更旧LightFileLightFile Batchログオプションの変更旧LightFileLightFile Batch並列処理オプションの変更旧LightFileLightFile Batch移行例例1: ローカルディレクトリの定期最適化旧LightFileLightFile Batch例2: S3バケットの最適化旧LightFileLightFile Batch例3: FTPサーバーの最適化旧LightFileLightFile Batch例4: バックアップ付きローカル処理旧LightFileLightFile Batch(ローカルバックアップ)LightFile Batch(S3バックアップ、新機能)例5: Slack通知付きバッチ処理旧LightFileLightFile Batch例6: 並列処理の活用旧LightFileLightFile BatchYAML設定ファイルの使用設定ファイル例(config.yaml使用方法cron/スケジューラでの実行cronでの実行例systemd timerでの実行例サービスファイル(/etc/systemd/system/lightfile-batch.serviceタイマーファイル(/etc/systemd/system/lightfile-batch.timer有効化次のステップ