FTBucketの親子関係の仕様
FTBucketは、他のFTBucketを「親」として設定し、そこからデータを取得・同期する親子関係を構築できます。
1. 親子関係の設定 (config.php)
REMOTEROOT: メインの親バケット(更新可能キャッシュ)のURL。- データ取得時に、まずこの親バケットの更新を試みます。
- 設定されている場合、子は常にこの親を経由してデータを取得します。
SUBSCRIBES: 読み取り専用の親バケットURLのリスト。REMOTEROOTがない場合や取得失敗時のフォールバック先として利用します。- ここで指定された親バケットの更新は行いません。
2. データ取得の流れ
新規スレッドの取得
scrapshot.phpにふたば等のスレッドURLを指定してアクセスします。REMOTEROOTがある場合:- 親バケットに更新要求を送信します。
- 親バケットからスレッドデータを一括取得します(高速なZIPダウンロード、または差分ファイルダウンロード)。
REMOTEROOTがない場合:Note: 親バケットがオブジェクトストレージにデプロイされたアーカイブを提供している場合、高速なZIPダウンロードを利用するには、子FTBucket側で
curlおよびzipPHP拡張モジュールが有効になっている必要があります。- オリジンサーバー(ふたば等)から直接データを取得します。
- 失敗した場合、
SUBSCRIBESに設定されたバケットからの取得を試みます。
既存スレッドの更新
- 基本的な流れは新規取得と同じです。
- 親バケットからは、ローカルにない差分ファイルのみをダウンロードするため、効率的に同期できます。
3. 親バケットからのスレッド取り込み
親バケットのスレッド閲覧URL(例: http://<親>/cont/may.2chan.net_b_res_12345.htm)を、自分の scrapshot.php に直接渡すことで、そのスレッドを自分の環境に取り込めます。
http://<自分>/scrapshot.php?rooturl=http://<親>/cont/may.2chan.net_b_res_12345.htm
scrapshot.php はこのURLを自動で元のふたばURLに変換して処理を開始します。
4. 親バケットの推奨運用
複数の子FTBucketから参照される親バケットでは、以下の設定を推奨します。
MANUALUPDATEをfalseに設定:- ユーザーによる手動更新を無効化し、サーバー負荷を安定させます。
- データ更新は
cron_get.phpに一本化:- cronによる定期実行でスレッドを更新します。
- これにより、オリジンサーバーへのアクセス頻度をコントロールし、子からのアクセス集中による過負荷を防ぎます。