LightFile NextLightFile Next

YAML設定ファイルの使い方

複雑な設定の記述を簡単にし、設定を共有する

LightFile Batchは設定オプションが多いため、YAML設定ファイルで設定を構造化して記述できます。複雑な設定を読みやすく管理し、チームメンバーや複数のサーバーで共有することができます。

YAML設定ファイルとは

YAML設定ファイルを使用すると、LightFile Batchの設定を一つのファイルにまとめて管理できます。

メリット:

  • 決まった設定セットを一つのファイルとして共有できる - チームメンバーや複数のサーバーで同じ設定を使用
  • 設定をバージョン管理できる - Gitなどで設定の変更履歴を追跡
  • 環境ごとに設定ファイルを分けられる - 開発・本番など、異なる環境で異なる設定を適用
  • コマンドラインが短くシンプルになる - 複雑な設定を毎回入力する必要がない

基本的な使い方

暗黙の設定ファイル

LightFile Batchは、以下のパスに設定ファイルが存在する場合、自動的に読み込みます

~/.lightfile-next/batch/config.yml

この暗黙の設定ファイルは、すべての実行時に適用されます。環境全体で共通の設定を記述しておくと便利です。

設定ファイルの明示的な指定

# 単一の設定ファイル
lightfile-batch --config config.yaml

# 複数の設定ファイル(後のファイルが優先)
lightfile-batch --config base.yaml --config override.yaml

複数の設定ファイルの挙動

複数の設定ファイルを指定した場合、以下の順序で設定が適用されます:

  1. 暗黙の設定ファイル (~/.lightfile-next/batch/config.yml) - 存在すれば自動読み込み
  2. 最初の--configで指定したファイル
  3. 2番目の--configで指定したファイル
  4. 3番目以降も同様
  5. コマンドラインオプション - 最優先

後から読み込まれた設定が、前の設定を上書きします

:

lightfile-batch --config base.yaml --config override.yaml --quality high

この場合:

  1. ~/.lightfile-next/batch/config.yml が読み込まれる(存在すれば)
  2. base.yaml の設定で上書き
  3. override.yaml の設定でさらに上書き
  4. --quality high が最終的に適用される

最小限の設定例

ローカルファイルシステムの場合:

# config.yaml
local:
  dir: /path/to/images
lightfile-batch --config config.yaml

S3の場合:

# config.yaml
s3:
  bucket: my-bucket
  acl: private
lightfile-batch --config config.yaml

設定の優先順位

複数の設定方法が指定された場合、以下の優先順位で適用されます:

  1. コマンドラインオプション(最優先)
  2. 環境変数
  3. 明示的に指定したYAML設定ファイル(複数指定時は後のファイルが優先)
  4. 暗黙の設定ファイル (~/.lightfile-next/batch/config.yml)
  5. デフォルト値(最低優先)

:

# ~/.lightfile-next/batch/config.yml(暗黙の設定)
optimization:
  quality: low

# config.yaml(明示的に指定)
optimization:
  quality: medium
# コマンドラインで上書き
lightfile-batch --config config.yaml --quality high
# → quality=high が適用される(コマンドラインオプションが最優先)

# 設定ファイルのみ指定
lightfile-batch --config config.yaml
# → quality=medium が適用される(config.yamlが暗黙の設定を上書き)

# 設定ファイルを指定しない場合
lightfile-batch local /path/to/images
# → quality=low が適用される(暗黙の設定ファイルが使用される)

設定ファイルのバリデーション

LightFile Batchは起動時に設定をバリデーションします。

よくあるエラー

必須項目の不足

Error: 設定が無効です: s3.bucket is required

対処法: 必須項目を設定ファイルまたはコマンドラインで指定してください。

無効な値

Error: 設定が無効です: invalid log level: "verbose"

対処法: 有効な値を指定してください(例: debug, info, warn, error)。

複数ファイルシステムの指定

Error: 設定が無効です: multiple file systems specified

対処法: local, s3, ftp, sftp, webdav のいずれか1つのみを指定してください。

設定ファイルのテスト

設定ファイルが正しいか確認するには、ドライラン(プレビュー)で実行します:

lightfile-batch --config config.yaml --dry-run

これにより、実際の処理を行わずに設定の検証とファイルスキャンのみ実行されます。

セキュリティに関する注意

機密情報の管理

以下の情報はYAMLファイルに直接記述せず、環境変数で管理することを推奨します:

  • licenseToken
  • s3.accessKeyId / s3.secretAccessKey
  • ftp.password / sftp.password
  • notify.smtp.password

.gitignoreへの追加

機密情報を含む設定ファイルはバージョン管理から除外してください:

# .gitignore
config.yaml
config-*.yaml
*.secret.yaml

ファイルパーミッション

# 設定ファイルを自分のみ読み書き可能にする
chmod 600 config.yaml

関連ページ