Backblaze B2 は、CloudFlare CDN に接続するためのチュートリアルを紹介する記事「Backblaze B2、低価格のオブジェクトストレージ、CloudFlare CDN への接続をサポート」で紹介されていますが、1 つの欠点があります。B2 のドメイン名はバケット名を公開してしまうため、あなたの CloudFlare の加速ドメインを他の人が使用して B2 を加速したり、直接アクセスして盗難する可能性があります。これはユーザーフレンドリーではなく、安全ではありません。
例を挙げます:
B2 が提供するドメインの形式は次のとおりです:https://f002.backblazeb2.com/file/bucket/xxx.txt
CloudFlare で加速後のドメインは次のようになります:https://b2.domain.com/file/bucket/xxx.txt
もし私が B2 でバケット名「xiaoz」を作成した場合、あなたの CloudFlare ドメインhttps://b2.domain.com/file/xiaoz/xxx.txt にアクセスすることができ、あなたの CloudFlare のトラフィックを占有することになります。
または、直接ソースサイトにアクセスすることもできます:https://f002.backblazeb2.com/file/xiaoz/xxx.txt でトラフィックを盗むことができます。
この記事の目的は、B2 の非常にユーザーフレンドリーでない URL パス「file/bucket/」を削除することです。
前提条件の準備
B2 のドメインがまだ CloudFlare に接続されていない場合は、次の記事を参考にしてください:https://blog.xiaoz.org/archives/13256
変換ルールの作成
CloudFlare の管理画面 - ルール - 変換ルール - 変換ルールの作成 - URL の書き換え
次に入力します:
ルール名:任意の名前
フィールド:「ホスト名」を選択
演算子:「等しい」を選択
値:CloudFlare で B2 の加速ドメイン(あなた自身のドメイン)を設定
次に、パスを「動的にリライト」に選択し、次のように入力します:
concat("/file/bucket", http.request.uri.path)
バケットは自分のストレージバケット名に変更し、デプロイを選択してください。
最適化後
最適化前のアクセスパスは次のようになります:https://b2.domain.com/file/bucket/xxx.txt
最適化後のパスは次のようになります:https://b2.domain.com/xxx.txt
「file/bucket/」が削除されたことがわかります。
不要なレスポンスヘッダーの削除
Backblaze B2 は、リクエストのレスポンスヘッダーに以下のヘッダーパラメータを追加します:
x-bz-content-sha1
x-bz-file-id
x-bz-file-name
x-bz-upload-timestamp
これらのパラメータは影響は少ないですが、これらのパラメータを見るだけで B2 を使用していることがわかりますし、これらのヘッダーパラメータは通常あまり役に立ちません。CloudFlare のリライトルールを使用してこれらを削除することもできます。
引き続き変換ルールの作成 - レスポンスヘッダーの変更
ホスト名などは前述と同じです。
次に、すべてを「削除」に選択し、最後に上記のヘッダーパラメータを入力してください。
まとめ
CloudFlare と Backblaze B2 の間のトラフィックは無料であり、CloudFlare の変換ルールを使用することでバケット名を隠すことができ、URL をよりユーザーフレンドリーにすることができます。また、ある程度の範囲で Backblaze B2 の盗難リスクを防ぐことができます。