LightFile NextLightFile Next

概要

多様なファイルシステムに対応した継続的な画像最適化

LightFile Batchの概要

LightFile Batchは、特定のディレクトリを対象に定期的な画像ファイルの最適化を行うCLIツールです。

継続的に一つのディレクトリに対して最適化を行い、新しく作成されたファイルや変更されたファイルを効率よく検知して、効率的なバッチ処理を実現します。ローカルファイルシステムはもちろん、FTP/SFTP/WebDAV、S3/S3互換ストレージなど、さまざまなファイルシステムに対応しています。

主な特徴

  • 多様なファイルシステム対応 - ローカル、FTP、SFTP、WebDAV、S3、S3互換ストレージに対応
  • サブコマンド方式 - 各ファイルシステムに最適化されたサブコマンドを提供
  • 継続的な最適化 - 処理済みファイルを簡易データベースで記録し、新規作成・変更されたファイルのみを効率的に再処理
  • 自動バックアップ - 最適化前のファイルをローカルまたはS3に自動バックアップ
  • 進捗表示 - リアルタイムで処理の進捗状況を表示
  • 品質設定 - 低・中・高の3段階で画質を調整可能
  • 並列処理 - 複数ファイルの同時処理に対応
  • YAML設定ファイル - 複雑な設定をファイルで管理可能
  • エラー通知 - 致命的エラーをEmail/Slackで通知
  • ライセンス管理 - トークンベースのライセンス認証

実行ファイル名

このプログラムの実行ファイル名は lightfile-batch です。

# LightFile Batchの概要
lightfile-batch --help

# バージョン表示
lightfile-batch --version

# ローカルディレクトリを処理
lightfile-batch local /path/to/images

# S3バケットを処理
lightfile-batch s3 --s3-bucket my-bucket --s3-region us-west-2 --s3-acl private

サブコマンド方式

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

サブコマンド説明必須フラグ
localローカルファイルシステム(デフォルト)なし
ftpFTPサーバー--ftp-host, --ftp-user
sftpSFTPサーバー--sftp-host, --sftp-user
s3S3/S3互換ストレージ--s3-bucket, --s3-acl
webdavWebDAVサーバー--webdav-url
test-notify通知設定のテストなし

サブコマンドを省略すると local として動作します。

# 以下は同じ動作
lightfile-batch local /path/to/images
lightfile-batch /path/to/images

対応ファイルシステム

ローカルファイルシステム

通常のディレクトリに対して処理を行います。

lightfile-batch local /path/to/images

FTP/FTPS

FTPサーバー上の画像ファイルを処理します。明示的TLS(AUTH TLS)と暗黙的TLSに対応。

lightfile-batch ftp \
  --ftp-host ftp.example.com \
  --ftp-user myuser \
  --ftp-password mypassword \
  --ftp-use-tls \
  --ftp-dir /images

SFTP

SSH File Transfer Protocolを使用してファイルを処理します。パスワード認証と秘密鍵認証に対応。

lightfile-batch sftp \
  --sftp-host sftp.example.com \
  --sftp-user myuser \
  --sftp-private-key ~/.ssh/id_rsa \
  --sftp-dir /images

WebDAV

WebDAVサーバー(Nextcloud、ownCloudなど)上のファイルを処理します。

lightfile-batch webdav \
  --webdav-url https://webdav.example.com/remote.php/dav/files/user/ \
  --webdav-user myuser \
  --webdav-password mypassword \
  --webdav-dir /

S3/S3互換ストレージ

Amazon S3や、MinIO、WasabiなどのS3互換ストレージに対応。

# Amazon S3
lightfile-batch s3 \
  --s3-bucket my-bucket \
  --s3-region us-west-2 \
  --s3-acl private

# S3互換ストレージ(MinIOなど)
lightfile-batch s3 \
  --s3-endpoint https://s3.example.com \
  --s3-bucket my-bucket \
  --s3-region us-east-1 \
  --s3-acl private \
  --s3-force-path-style

対応画像形式

形式拡張子対応状況
JPEG.jpg, .jpeg, .jfif✓ 対応
PNG.png✓ 対応
GIF.gif✗ 非対応
WebP.webp✗ 非対応

デフォルトで .jpg, .jpeg, .jfif, .png の拡張子を持つファイルが処理対象となります。GIFとWebPファイルは自動的にスキップされます。

最適化の仕組み

LightFile Batchは、人間が目で一枚ずつ丁寧に画像の画質とファイルサイズのバランスを取る行為を、プログラムで再現したCLIツールです。

1枚ずつ、それぞれの画像に合わせた適切な設定を選択し、それに基づいて画像の最適化を行います。

品質設定(--quality low/medium/high)を指定することで、全体的な最適化の強度を調整できます。