LightFile NextLightFile Next

YAML設定ファイル

全設定項目の完全リファレンス

LightFile Batchのすべての設定をYAMLファイルで管理できます。このページでは、YAML設定ファイルで使用できるすべての設定項目を説明します。

全設定レイアウト

YAMLファイルは以下のトップレベルセクションで構成されます:

# ライセンス
licenseToken: "your-license-token"

# システムディレクトリ
dir:
  system: ~/.lightfile-next/batch
  project: ""
  fileMemory: ""
  backup: ""
  sessionRetentionDays: 28

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

# 実行制御
dryRun: false
quiet: false
nonExclusive: false

# インデックスファイル
index:
  file: ""
  remoteFile: ""

# ファイルシステム設定(いずれか1つ)
local:
  # ローカルファイルシステムの設定

s3:
  # S3/S3互換ストレージの設定

ftp:
  # FTPサーバーの設定

sftp:
  # SFTPサーバーの設定

webdav:
  # WebDAVサーバーの設定

# バックアップ設定
backup:
  mode: strict
  fileSystem: local

# 最適化設定
optimization:
  quality: medium
  jpegQuality: medium
  pngQuality: medium

# レポート設定
report:
  skip: false

# 通知設定
notify:
  smtp:
    # SMTP通知設定
  email:
    # Lambda Email通知設定
  slack:
    # Slack通知設定

共通設定

ライセンス

licenseToken: "your-license-token-here"

説明: ライセンストークンを指定します。

優先順位:

  1. コマンドラインオプション --license-token
  2. 環境変数 LF_TOKEN
  3. ファイル ~/.lightfile-next/token
  4. YAML設定ファイル(この項目)

詳細は ライセンスのセットアップ を参照してください。

システムディレクトリ

dir:
  system: ~/.lightfile-next/batch          # システムディレクトリ
  project: ""                              # プロジェクトディレクトリ(空の場合は自動生成)
  fileMemory: ""                           # KVS保存先(空の場合は <project>/memory)
  backup: ""                               # バックアップディレクトリ(空の場合は <project>/backup)
  sessionRetentionDays: 28                 # セッション保持日数(0で無制限)

デフォルト値:

  • sessionRetentionDays: 28日間

詳細は システムディレクトリ を参照してください。

ログ設定

log:
  level: info                # ログレベル: debug, info, warn, error
  progressInterval: 30s      # 進捗ログの出力間隔(0で無効化)
  verbose: false             # 内部処理の詳細ログを表示

デフォルト値:

  • level: info
  • progressInterval: 30s(30秒)
  • verbose: false

時間単位: ms(ミリ秒)、s(秒)、m(分)、h(時間)

詳細は ログ機能 を参照してください。

実行制御

dryRun: false        # ドライラン(プレビュー)(実際の処理を行わない)
quiet: false         # 静かな実行(エラーのみ表示)
nonExclusive: false  # 排他制御を無効化

デフォルト値: すべて false

インデックスファイル

index:
  file: ""              # ローカルインデックスファイルのパス
  remoteFile: ""        # リモートインデックスファイルの相対パス(リモートFS用)

詳細は インデックスファイル を参照してください。

ファイルシステム設定

いずれか1つのファイルシステム設定を指定します。

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

local:
  dir: /path/to/images        # 処理対象ディレクトリ(必須)

  # フィルタオプション
  after: ""                   # 指定日時より新しいファイル(例: 7d, 2024-01-01)
  before: ""                  # 指定日時より古いファイル(例: 30d, 2024-12-31)
  minSize: ""                 # 最小ファイルサイズ(例: 100kb, 2mb)
  maxSize: ""                 # 最大ファイルサイズ(例: 5mb, 1gb)
  extensions:                 # 処理対象拡張子(デフォルト: .jpg,.jpeg,.png,.jfif)
    - .jpg
    - .jpeg
    - .png
  include:                    # 対象パターン(glob形式)
    - "uploads/**/*.jpg"
  exclude:                    # 除外パターン(glob形式)
    - "**/thumbnails/**"

  # 実行制御
  limit: 0                    # 処理ファイル数上限(0で無制限)
  concurrency: 1              # 並列処理数

デフォルト値:

  • extensions: [".jpg", ".jpeg", ".png", ".jfif"]
  • limit: 0(無制限)
  • concurrency: 1(順次処理)

S3/S3互換ストレージ

s3:
  # 接続設定
  endpoint: ""                # S3互換エンドポイント(Amazon S3の場合は空)
  bucket: my-bucket           # バケット名(必須)
  region: us-east-1           # リージョン
  accessKeyId: ""             # アクセスキー(環境変数でも可)
  secretAccessKey: ""         # シークレットキー(環境変数でも可)
  prefix: ""                  # バケット内のプレフィックス(パス)

  # S3設定
  acl: private                # ACL(必須: private, public-read, etc.)
  forcePathStyle: false       # パススタイルを強制(MinIO等で使用)
  useSSL: true                # SSL/TLS使用
  batchSize: 1000             # リスト取得のバッチサイズ

  # フィルタオプション(localと同じ)
  after: ""
  before: ""
  minSize: ""
  maxSize: ""
  extensions:
    - .jpg
    - .jpeg
    - .png
  include: []
  exclude: []

  # 実行制御
  limit: 0
  concurrency: 1

デフォルト値:

  • region: us-east-1
  • useSSL: true
  • batchSize: 1000
  • extensions: [".jpg", ".jpeg", ".png", ".jfif"]
  • limit: 0
  • concurrency: 1

必須項目: bucket

詳細は リモートファイルシステム - S3 を参照してください。

FTP/FTPS

ftp:
  # 接続設定
  host: ftp.example.com       # ホスト名(必須)
  port: 21                    # ポート番号
  user: ftpuser               # ユーザー名(必須)
  password: ftppassword       # パスワード

  # TLS設定
  useTLS: false               # 明示的TLS使用(AUTH TLS)
  useImplicitTLS: false       # 暗黙的TLS使用(ポート990)
  ignoreTLSErrors: false      # TLSエラーを無視(開発用)

  # 接続オプション
  passiveMode: true           # パッシブモード
  shortTimeout: 30            # 短いタイムアウト(秒)
  longTimeout: 300            # 長いタイムアウト(秒)
  basePath: ""                # ベースパス

  # フィルタ・実行制御(localと同じ)
  dir: /path/to/images
  after: ""
  before: ""
  minSize: ""
  maxSize: ""
  extensions:
    - .jpg
    - .jpeg
    - .png
  include: []
  exclude: []
  limit: 0
  concurrency: 1

デフォルト値:

  • port: 21
  • passiveMode: true
  • shortTimeout: 30
  • longTimeout: 300秒(5分)
  • extensions: [".jpg", ".jpeg", ".png", ".jfif"]
  • limit: 0
  • concurrency: 1

必須項目: host, user

注意: useImplicitTLSを使用する場合は、通常ポート990を指定します(port: 990)。

詳細は リモートファイルシステム - FTP を参照してください。

SFTP

sftp:
  # 接続設定
  host: sftp.example.com      # ホスト名(必須)
  port: 22                    # ポート番号
  user: sftpuser              # ユーザー名(必須)

  # 認証設定(パスワードまたは秘密鍵)
  password: ""                # パスワード認証
  privateKey: ""              # 秘密鍵の内容(文字列)
  privateKeyPath: ""          # 秘密鍵ファイルのパス
  privateKeyPassword: ""      # 秘密鍵のパスフレーズ

  # 接続オプション
  shortTimeout: 30            # 短いタイムアウト(秒)
  longTimeout: 300            # 長いタイムアウト(秒)
  basePath: ""                # ベースパス

  # フィルタ・実行制御(localと同じ)
  dir: /path/to/images
  after: ""
  before: ""
  minSize: ""
  maxSize: ""
  extensions:
    - .jpg
    - .jpeg
    - .png
  include: []
  exclude: []
  limit: 0
  concurrency: 1

デフォルト値:

  • port: 22
  • shortTimeout: 30
  • longTimeout: 300秒(5分)
  • extensions: [".jpg", ".jpeg", ".png", ".jfif"]
  • limit: 0
  • concurrency: 1

必須項目: host, user

詳細は リモートファイルシステム - SFTP を参照してください。

WebDAV

webdav:
  # 接続設定
  url: https://webdav.example.com/remote.php/dav/files/user/  # WebDAV URL(必須)
  user: webdavuser            # ユーザー名
  password: webdavpassword    # パスワード

  # 接続オプション
  shortTimeout: 30            # 短いタイムアウト(秒)
  longTimeout: 300            # 長いタイムアウト(秒)
  basePath: ""                # ベースパス

  # フィルタ・実行制御(localと同じ)
  dir: /path/to/images
  after: ""
  before: ""
  minSize: ""
  maxSize: ""
  extensions:
    - .jpg
    - .jpeg
    - .png
  include: []
  exclude: []
  limit: 0
  concurrency: 1

デフォルト値:

  • shortTimeout: 30
  • longTimeout: 300秒(5分)
  • extensions: [".jpg", ".jpeg", ".png", ".jfif"]
  • limit: 0
  • concurrency: 1

必須項目: url

詳細は リモートファイルシステム - WebDAV を参照してください。

バックアップ設定

backup:
  # 基本設定
  mode: strict                # strict(必須、失敗で中止), loose(失敗しても続行), none(バックアップなし)
  fileSystem: local           # local または s3

  # ローカルバックアップ - ディスク容量管理
  freeSpaceThreshold: 10gb    # 空き容量しきい値(これを下回ると古いバックアップを削除)
  targetFreeSpace: 15gb       # 目標空き容量

  # ローカルバックアップ - サイズ管理
  maxTotalSize: 50gb          # バックアップの最大サイズ
  targetTotalSize: 40gb       # バックアップの目標サイズ

  # 共通設定
  checkInterval: 1gb          # 容量チェック間隔(この容量だけバックアップが増えるごとにチェック)

  # S3バックアップ
  s3:
    endpoint: ""              # S3互換エンドポイント
    bucket: ""                # バケット名
    region: us-east-1         # リージョン
    prefix: ""                # プレフィックス(パス)
    accessKeyId: ""           # アクセスキー
    secretAccessKey: ""       # シークレットキー
    acl: private              # ACL
    maxTotalSize: 100gb       # S3バックアップの最大サイズ
    targetTotalSize: 80gb     # S3バックアップの目標サイズ

デフォルト値:

  • mode: strict
  • fileSystem: local
  • checkInterval: 1gb
  • s3.region: us-east-1
  • s3.acl: private

バックアップモード:

  • strict: バックアップ必須。失敗したら処理を中止(デフォルト)
  • loose: バックアップを試みるが、失敗しても処理を続行
  • none: バックアップしない

詳細は バックアップ機能 を参照してください。

最適化設定

optimization:
  quality: medium             # 全体品質: low, medium, high
  jpegQuality: medium         # JPEG品質: low, medium, high
  pngQuality: medium          # PNG品質: low, medium, high

デフォルト値:

  • quality: medium
  • jpegQuality: medium
  • pngQuality: medium

品質レベル:

  • low: 最大圧縮(ファイルサイズ優先)
  • medium: バランス型(デフォルト)
  • high: 高品質(画質優先)

注意: jpegQualitypngQualityが指定されていない場合は、qualityの値が使用されます。

レポート設定

report:
  skip: false  # レポート機能を無効化(デフォルト: false)

デフォルト値:

  • skip: false(レポート機能は有効)

説明:

  • LightFile Batchは、使用統計(処理結果、エラー情報など)をLightFile6のレポートシステムに送信します
  • skip: trueを設定すると、レポート機能が無効化されます
  • レポートデータにはライセンス情報、処理統計、エラー情報が含まれます
  • レポートはバッファリングされ、定期的にバックグラウンドで送信されます

コマンドラインオプション:

# レポート機能を無効化
lightfile-batch --config config.yaml --no-report

通知設定

バッチ処理を続行不可能なエラー(Fatal Error)発生時に通知を送信します。複数の通知方法を同時に設定できます。

SMTP Email通知

notify:
  smtp:
    to: admin@example.com           # 宛先
    from: lightfile@example.com     # 送信元
    host: smtp.example.com          # SMTPホスト
    port: 587                       # SMTPポート
    user: smtp_user                 # SMTP認証ユーザー名
    password: smtp_password         # SMTP認証パスワード
    useTLS: true                    # TLS使用
    ignoreTLSErrors: false          # TLSエラーを無視(開発用)

デフォルト値:

  • port: 587
  • ignoreTLSErrors: false

注意: useTLSを指定しない場合はTLSが無効のままになります。ポート番号による自動判定は行われないため、TLSを使う場合は useTLS: true を必ず設定してください。

簡易Email通知

notify:
  email:
    to:                             # 宛先(複数指定可能)
      - admin@example.com
      - staff@example.com
    cc:                             # CC(複数指定可能)
      - manager@example.com
    functionName: notificationSendPrd-m8p3q7r2s5  # Lambda関数名
    region: ap-northeast-1          # AWSリージョン

デフォルト値:

  • functionName: notificationSendPrd-m8p3q7r2s5
  • region: ap-northeast-1

Slack通知

notify:
  slack:
    webhookUrl: https://hooks.slack.com/services/YOUR/WEBHOOK/URL  # Webhook URL
    channel: "#alerts"              # チャンネル(Webhook設定を上書き)

複数通知の組み合わせ

notify:
  # SMTP経由でメール送信
  smtp:
    to: admin@example.com
    from: lightfile@example.com
    host: smtp.example.com
    port: 587
    user: smtp_user
    password: smtp_password

  # 同時にSlackにも通知
  slack:
    webhookUrl: https://hooks.slack.com/services/YOUR/WEBHOOK/URL
    channel: "#alerts"

詳細は 通知機能 を参照してください。

関連ページ