リモートファイルシステム概要
対応プロトコルと共通機能の説明
LightFile Batchは、ローカルファイルシステムだけでなく、様々なリモートファイルシステム上の画像ファイルを直接最適化できます。
画像ファイルと同じサーバーで実行する必要はなく、LightFile専用のサーバーを用意し、そこから定期的にリモートサーバーの画像を最適化するという構成が可能です。既存のSFTPやWebDAVなど、デザイナーやコンテンツ管理のために用意された入り口を流用できるため、Webサーバー自体に変更を加えることなく画像最適化を導入できます。
対応プロトコル
- FTP/FTPS - 従来型のファイル転送プロトコル
- SFTP - SSH経由のセキュアなファイル転送
- WebDAV - HTTP/HTTPSベースのファイル共有(NextCloud、ownCloud等)
- S3/S3互換プロトコル - Amazon S3、MinIO、Wasabi等のオブジェクトストレージ
| ファイルシステム | サブコマンド | プロトコル | 用途 |
|---|---|---|---|
| FTP/FTPS | ftp | FTP, FTPS | レガシーサーバー、共有ホスティング |
| SFTP | sftp | SSH File Transfer Protocol | セキュアなファイル転送 |
| WebDAV | webdav | HTTP/HTTPS WebDAV | NextCloud, ownCloud等 |
| S3/S3互換 | s3 | Amazon 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.shortTimeoutftp.longTimeout | 30秒 300秒 |
| SFTP | --sftp-short-timeout--sftp-long-timeout | sftp.shortTimeoutsftp.longTimeout | 30秒 300秒 |
| WebDAV | --webdav-short-timeout--webdav-long-timeout | webdav.shortTimeoutwebdav.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 600YAML設定ファイル:
ftp:
host: ftp.example.com
user: myuser
shortTimeout: 60
longTimeout: 600SFTP
コマンドライン:
lightfile-batch sftp \
--sftp-host sftp.example.com \
--sftp-user myuser \
--sftp-short-timeout 60 \
--sftp-long-timeout 600YAML設定ファイル:
sftp:
host: sftp.example.com
user: myuser
shortTimeout: 60
longTimeout: 600WebDAV
コマンドライン:
lightfile-batch webdav \
--webdav-url https://webdav.example.com/dav/ \
--webdav-user myuser \
--webdav-short-timeout 60 \
--webdav-long-timeout 600YAML設定ファイル:
webdav:
url: https://webdav.example.com/dav/
user: myuser
shortTimeout: 60
longTimeout: 600