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"説明: ライセンストークンを指定します。
優先順位:
- コマンドラインオプション
--license-token - 環境変数
LF_TOKEN - ファイル
~/.lightfile-next/token - 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:infoprogressInterval: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-1useSSL:truebatchSize:1000extensions:[".jpg", ".jpeg", ".png", ".jfif"]limit:0concurrency: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:21passiveMode:trueshortTimeout:30秒longTimeout:300秒(5分)extensions:[".jpg", ".jpeg", ".png", ".jfif"]limit:0concurrency: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:22shortTimeout:30秒longTimeout:300秒(5分)extensions:[".jpg", ".jpeg", ".png", ".jfif"]limit:0concurrency: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:0concurrency: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:strictfileSystem:localcheckInterval:1gbs3.region:us-east-1s3.acl:private
バックアップモード:
strict: バックアップ必須。失敗したら処理を中止(デフォルト)loose: バックアップを試みるが、失敗しても処理を続行none: バックアップしない
詳細は バックアップ機能 を参照してください。
最適化設定
optimization:
quality: medium # 全体品質: low, medium, high
jpegQuality: medium # JPEG品質: low, medium, high
pngQuality: medium # PNG品質: low, medium, highデフォルト値:
quality:mediumjpegQuality:mediumpngQuality:medium
品質レベル:
low: 最大圧縮(ファイルサイズ優先)medium: バランス型(デフォルト)high: 高品質(画質優先)
注意: jpegQualityとpngQualityが指定されていない場合は、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:587ignoreTLSErrors: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-m8p3q7r2s5region: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"詳細は 通知機能 を参照してください。
関連ページ
- YAML設定ファイルの使い方 - YAML設定ファイルの基本的な使い方と実用例
- コマンドラインオプション - すべてのCLIオプション
- 環境変数 - 環境変数での設定方法