LightFile NextLightFile Next

リモートファイルシステム概要

対応プロトコルと共通機能の説明

LightFile Batchは、ローカルファイルシステムだけでなく、様々なリモートファイルシステム上の画像ファイルを直接最適化できます。

画像ファイルと同じサーバーで実行する必要はなく、LightFile専用のサーバーを用意し、そこから定期的にリモートサーバーの画像を最適化するという構成が可能です。既存のSFTPやWebDAVなど、デザイナーやコンテンツ管理のために用意された入り口を流用できるため、Webサーバー自体に変更を加えることなく画像最適化を導入できます。

対応プロトコル

  • FTP/FTPS - 従来型のファイル転送プロトコル
  • SFTP - SSH経由のセキュアなファイル転送
  • WebDAV - HTTP/HTTPSベースのファイル共有(NextCloud、ownCloud等)
  • S3/S3互換プロトコル - Amazon S3、MinIO、Wasabi等のオブジェクトストレージ
ファイルシステムサブコマンドプロトコル用途
FTP/FTPSftpFTP, FTPSレガシーサーバー、共有ホスティング
SFTPsftpSSH File Transfer Protocolセキュアなファイル転送
WebDAVwebdavHTTP/HTTPS WebDAVNextCloud, ownCloud等
S3/S3互換s3Amazon S3 API(互換プロトコル含む)Amazon S3、MinIO、Wasabi等

共通の機能

すべてのリモートファイルシステムで以下の機能が利用できます:

  • ファイルフィルタ - 拡張子、サイズ、更新日時、glob パターンでフィルタ
  • 並列処理 - 複数ファイルの同時処理
  • バックアップ - ローカルまたはS3へのバックアップ
  • 簡易データベース管理 - 処理済みファイルの記録により重複処理を回避
  • 進捗表示 - リアルタイムの進捗ログ
  • タイムアウト設定 - 接続やデータ転送のタイムアウト時間を調整可能

補足: FTP/SFTP/WebDAVでは処理対象ディレクトリを--ftp-dir/--sftp-dir/--webdav-dirで指定します。S3系コマンドではプレフィックスを--s3-prefixで指定し、位置引数での指定はできません。

タイムアウト設定

リモートファイルシステムではタイムアウト時間を調整できます。

タイムアウトの種類

LightFile Batchは処理の性質に応じて2種類のタイムアウト時間を設定できます:

短いタイムアウト(Short Timeout):

  • ファイルの日付やサイズの取得
  • ディレクトリの存在確認
  • その他の軽量な操作

長いタイムアウト(Long Timeout):

  • ファイルのダウンロード
  • ファイルのアップロード
  • ファイルリストの取得
  • その他の長時間を要する可能性がある処理

プロトコル別のタイムアウト設定

プロトコルCLIオプションYAML設定デフォルト値
FTP--ftp-short-timeout
--ftp-long-timeout
ftp.shortTimeout
ftp.longTimeout
30秒
300秒
SFTP--sftp-short-timeout
--sftp-long-timeout
sftp.shortTimeout
sftp.longTimeout
30秒
300秒
WebDAV--webdav-short-timeout
--webdav-long-timeout
webdav.shortTimeout
webdav.longTimeout
30秒
300秒
S3なしなしAWS SDK のデフォルト

設定例

FTP

コマンドライン:

lightfile-batch ftp \
  --ftp-host ftp.example.com \
  --ftp-user myuser \
  --ftp-short-timeout 60 \
  --ftp-long-timeout 600

YAML設定ファイル:

ftp:
  host: ftp.example.com
  user: myuser
  shortTimeout: 60
  longTimeout: 600

SFTP

コマンドライン:

lightfile-batch sftp \
  --sftp-host sftp.example.com \
  --sftp-user myuser \
  --sftp-short-timeout 60 \
  --sftp-long-timeout 600

YAML設定ファイル:

sftp:
  host: sftp.example.com
  user: myuser
  shortTimeout: 60
  longTimeout: 600

WebDAV

コマンドライン:

lightfile-batch webdav \
  --webdav-url https://webdav.example.com/dav/ \
  --webdav-user myuser \
  --webdav-short-timeout 60 \
  --webdav-long-timeout 600

YAML設定ファイル:

webdav:
  url: https://webdav.example.com/dav/
  user: myuser
  shortTimeout: 60
  longTimeout: 600