LightFile Batch ドキュメント
Webサーバー上の画像ディレクトリを定期的に巡回し、新規・変更されたファイルだけを効率よく最適化するCLIツールです。ローカルに加えて FTP / SFTP / WebDAV / S3 にも対応します。
はじめに
- 概要ディレクトリを定期的に巡回して画像を最適化するCLIツールです。新規・変更されたファイルだけを検知して処理し、FTP・SFTP・WebDAV・S3 にも対応します。
- インストール対応OSとシステム要件、Linux・Windows・macOS それぞれへのインストール方法です。最新バイナリとパッケージ配布は bin.ideamans.com にあります。
- ライセンスのセットアップライセンストークンの取得と指定方法です。コマンドラインオプション、環境変数 LF_TOKEN、トークンファイルの3通りがあり、この順に優先されます。
- クイックスタートLightFile Batch を最初に動かすまでの手順です。サブコマンドの選び方、ライセンストークンの設定、ドライランでの確認、2回目以降の差分処理を実例で示します。
基本的な使い方
- ファイルのフィルタリング処理対象ファイルを柔軟に制御できます。特定の拡張子だけを処理の対象にできます。コマンドライン: YAML設定ファイル: コマンドライン: YAML設定ファイル: 大きすぎるファイルや小さすぎるファイルを処理の対象外にすることができます。
- 画質設定画質とファイルサイズのバランスを low・medium・high の3段階で調整します。JPEG と PNG に別々の品質を指定する方法もあわせて説明します。
- ドライラン(プレビュー)ファイルを書き換えずに最適化の動作だけを確かめるモードです。処理対象と削減量の見積もりが取れるので、初回実行前の安全確認に向いています。
リモートファイルシステム
- リモートファイルシステム概要画像と同じサーバーで動かさずに、リモートのファイルを直接最適化できます。対応プロトコルと、接続・読み書きそれぞれのタイムアウト設定を説明します。
- FTP/FTPSFTP および FTPS サーバー上の画像を直接最適化する設定です。暗号化なしのFTP、明示的TLS、暗黙的TLS の3通りの接続方法を説明します。
- SFTPSFTP サーバー上の画像を最適化する設定です。パスワード認証と、より安全で推奨される秘密鍵認証の両方の書き方を示します。
- WebDAVWebDAV サーバー上の画像を最適化する設定です。NextCloud や ownCloud で使え、ベースURLの組み立て方もあわせて説明します。
- S3/S3互換ストレージAmazon S3 と MinIO・Wasabi などのS3互換ストレージ上の画像を最適化します。保存時のACLの選び方と、元のACLを引き継ぐ keep モードも説明します。
バックアップ
- バックアップ概要最適化する前の元ファイルを自動で控えておく機能です。ローカルとS3のどちらにも保存でき、容量の上限や世代管理もあわせて説明します。
- バックアップモードバックアップの厳しさを strict・loose・none の3つから選べます。バックアップに失敗したとき処理を止めるか続けるかの違いを説明します。
- ローカルバックアップバックアップの保存先にローカルファイルシステムを使う設定です。既定の保存場所と、ディスク空き容量を基準に古いバックアップを消す容量管理を説明します。
- S3バックアップバックアップの保存先に Amazon S3 を使う設定です。MinIO や Wasabi などのS3互換ストレージ、Path-Style エンドポイントの指定、容量管理も説明します。
通知
- 通知概要バッチ処理を続けられない事態が起きたときに知らせる通知機能の全体像です。簡易Email・SMTP・Slack の3通りがあり、同時に送ることもできます。
- 簡易Email通知致命的なエラーが起きたときに、SMTPの設定なしでメールを送る簡易通知です。弊社のメールサーバーを使うため、月1000件までの制限があります。
- SMTP Email通知自前のSMTPサーバーからエラー通知メールを送る設定です。Gmail など主要サーバーの設定例と、TLSを明示しないと無効のままになる点を説明します。
- Slack通知致命的なエラーが起きたときに Slack へ通知する設定です。Incoming Webhook URL の取得手順と、既定とは別のチャンネルへ送る指定方法を説明します。
その他の設定
- システムディレクトリ継続的なバッチ処理のために作られるディレクトリの構成です。処理済みファイルの記録、最適化前のバックアップ、実行ログの置き場所を説明します。
- 排他制御cron の多重起動を防ぐ排他制御の仕組みです。同時起動時のエラー、無効化の方法、ロックファイルが残ってしまったときの復旧手順を説明します。
- インデックスファイルディレクトリ全体を走査せず、処理するファイルを一覧で明示する仕組みです。CMSが変更を把握できる環境では、大規模でも走査を省いて高速に処理できます。
- YAML設定ファイルの使い方多くのオプションをYAMLファイルにまとめて管理する方法です。暗黙の設定ファイル、明示指定、複数指定したときの優先順位を説明します。
- ログ機能ログ出力の設定です。30秒ごとの進捗ログとその間隔の変更、debug から error までの4段階のログレベルの使い分けを説明します。
- 表示言語の設定表示言語は起動時に環境から自動判定します。LANGUAGE・LC_ALL などを見る優先順位と判定ルール、明示的に日本語へ固定する方法を説明します。
- 使用状況レポート機能実行結果の統計とエラー情報をクラウドへ送るレポート機能です。送信される内容、外部通信の宛先、プロキシ環境での使い方、無効化の方法を説明します。
リファレンス
- コマンドラインオプションLightFile Batch のコマンドラインオプションの完全なリファレンスです。local・ftp・sftp などサブコマンドごとの必須オプションもあわせて一覧にしています。
- 環境変数lightfile-batch が読む環境変数の一覧です。ライセンストークン、ログレベル、AWS認証情報について、対応するオプションと既定値を対比しています。
- YAML設定ファイルYAML設定ファイルで指定できる全項目のリファレンスです。ライセンス・システムディレクトリ・ログ・実行制御など、セクションごとに書式と既定値を示します。
- ログメッセージ一覧LightFile Batch が出力する主なログメッセージの意味を、debug・info・warn・error の4段階のレベル別にまとめた一覧です。
トラブルシューティング
- インストールと起動コマンドが見つからない、Windows でランタイムエラーが出るといった導入時の問題と対処です。PATH の確認方法と対応OSもあわせて記載しています。
- ライセンスと設定ライセンストークンが見つからない、無効と判定される、YAMLの設定が反映されないといった問題の原因と対処をまとめています。
- 接続の問題FTP・SFTP・S3 への接続でつまずいたときの対処です。タイムアウト、認証失敗、秘密鍵エラー、バケットが見つからない場合の確認手順をまとめています。
- ファイル処理とフィルタ処理対象が0件になる、最適化や書き込みに失敗する、すべてスキップされるといった問題の診断手順です。拡張子・サイズ・除外パターンの確認から順に進めます。
- パフォーマンスとログ処理が遅い、メモリが足りない、リモート接続が遅いといった性能面の問題と対処です。並列数の調整、フィルタ、インデックスファイルの活用を紹介します。