概要
多様なファイルシステムに対応した継続的な画像最適化
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 | ローカルファイルシステム(デフォルト) | なし |
ftp | FTPサーバー | --ftp-host, --ftp-user |
sftp | SFTPサーバー | --sftp-host, --sftp-user |
s3 | S3/S3互換ストレージ | --s3-bucket, --s3-acl |
webdav | WebDAVサーバー | --webdav-url |
test-notify | 通知設定のテスト | なし |
サブコマンドを省略すると local として動作します。
# 以下は同じ動作
lightfile-batch local /path/to/images
lightfile-batch /path/to/images対応ファイルシステム
ローカルファイルシステム
通常のディレクトリに対して処理を行います。
lightfile-batch local /path/to/imagesFTP/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 /imagesSFTP
SSH File Transfer Protocolを使用してファイルを処理します。パスワード認証と秘密鍵認証に対応。
lightfile-batch sftp \
--sftp-host sftp.example.com \
--sftp-user myuser \
--sftp-private-key ~/.ssh/id_rsa \
--sftp-dir /imagesWebDAV
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)を指定することで、全体的な最適化の強度を調整できます。