記事ディレクトリ
Backblaze B2を使って超低コストのストレージを構築したいけれど、ドメイン名の紐付け方がわからない?この記事では、Cloudflareのカスタムドメイン名とBackblazeを統合する全プロセスをステップバイステップで解説します。
DNS解決、SSL証明書の設定、ルーティングルールの設定に関する詳細な解説を通して、Bandwidth Allianceを最大限に活用し、100%無料のダウンリンクトラフィックを実現しましょう。この高度でトラブルフリーな設定ガイドを今すぐ入手してください!
数日前、画像ホスティングをいじっていて、ブログにあるすべての画像をBackblaze B2に移行し、Cloudflare CDNを使って表示速度を上げようとしていました。
結果として、この一件で午後いっぱいを費やしてしまった。
オンラインチュートリアルは散在していてまとまりがなく、手順が抜けていたり間違っていたりする箇所も多く、かなりイライラしていました。そこで、他の人が同じ間違いをしないように、最初から最後まで手順を追って説明することにしました。

要するに、このソリューションは本当に素晴らしい。Backblaze B2は無料のデイリーデータ容量を提供しており、CloudflareのCDNキャッシュと組み合わせることで、十分な速度を実現し、コストはほぼゼロになる。0か月運用しても料金はゼロ(無料容量を超過してもせいぜい数セント程度)。
さて、おしゃべりはこれくらいにして、始めましょう。
最初のステップは、BackblazeアカウントとCloudflareアカウントを登録することです。これは簡単なので、誰でもできます。
ストレージバケットを作成する
登録後、Backblazeの管理画面にアクセスし、「マイアカウント」をクリックし、「バケット」をクリックしてから「バケットを作成」をクリックしてください。
バケットの名前は任意で構いません。重要なのは、アクセス権限を「パブリック」に設定することです。その他の設定はすべてデフォルトのままにしておいてください。

画像を作成した後、画像をアップロードしてアクセス可能かどうかを確認できます。画像の詳細をクリックすると、次のようなリンクが表示されます。
https:// f005.backblazeb2. com/file/bucket-name/xxxxx.jpg

このドメイン名はBackblazeによってランダムに割り当てられたもので、正直言って見た目があまり良くありません。しかも、ストレージバケットの情報が直接公開されてしまいます。そこで、次のステップとしてCloudflareに切り替えることにしました。
DNS
Cloudflareにサイトを追加するには、既にドメインを他の場所で購入している場合は、「サイトを追加」を選択し、DNSをCloudflareのネームサーバー(例:danica.ns.cloudflare.com)に変更してください。各手順の詳細な説明が表示されます。


サイトを追加した後、DNSレコードを追加してください。
タイプとしてCNAMEを選択し、名前として希望するサブドメイン(例:oss)を入力し、ターゲットとしてBackblazeから取得したドメイン(例:f005.backblazeb2.com)を入力します。プロキシステータスを示すオレンジ色の雲アイコンを有効にすることを忘れないでください。これはCloudflareのCDNを使用するために必要です。

この時点で、以下のように独自のドメインを通じて画像にアクセスできます。
https:// oss.xxx .com/file/bucket-name/xxxxx.jpg
元のランダムなドメイン名よりははるかに見栄えが良いですが、それでも十分ではありません。なぜなら、URLに「/file/bucket-name/」という文字列が含まれているため、見た目が悪いだけでなく、バケットの構造が露呈してしまい、セキュリティ上の不安を感じさせるからです。
URLパスを書き換える
Cloudflareの管理画面にアクセスし、「ルール」をクリックし、「概要」をクリックし、「URL書き換えルール」をクリックして、新しいルールを作成します。

ルール名は任意に設定できます。リクエストURLには「含めない」を選択し、最後に「/file/」と入力してください。これにより、「/file/」パスを含まないリクエストのみが処理されます。
ただし、ルールをより厳密にしたい場合は、そのサブドメインを直接照合することもできます。

最後の欄に以下を記入してください。
concat(/file/桶名, http.request.uri.path)
次にデプロイします。
その後、アクセス結果は以下のようになります。
https:// oss.xxx.com/ xxxxx.jpg
汚れ一つなく、余計なものは何もない。
気持ちいい。
不要なレスポンスヘッダーを削除する
この手順は任意ですが、実行することをお勧めします。
Backblazeのレスポンスヘッダーには、「x-bz-」で始まる情報(「x-bz-file-id」、「x-bz-file-name」、「x-bz-content-sha1」など)が多数含まれています。これらの情報はファイルストレージの詳細を開示するものですが、ユーザーに表示する必要はありません。
操作方法は以前と同様です。ルールセクションで「レスポンスヘッダー変換ルール」を選択し、新しいルールを作成します。

これらのヘッダーの削除を設定する:
x-bz-content-sha1 x-bz-file-id x-bz-file-name x-bz-info-src_last_modified_millis x-bz-upload-timestamp
x-bz-info-src_last_modified_millis はまだリストに載っていないと思いますが、公式チュートリアルに記載されているので、追加しました。いずれにしても、害はないでしょう。
そして、もう一つ非常に重要なルールがあります。
キャッシュ効率を最適化します。Cloudflareでは、Backblazeから返されるレスポンスヘッダーにETag値を連結するレスポンスヘッダールールを設定できます。
concat(http.response.headers[x-bz-content-sha1][0], http.response.headers[x-bz-info-src_last_modified_millis][0], http.response.headers[x-bz-file-id][0])
この設定が完了したら、戻って画像レスポンスヘッダーを確認してください。「x-bz」で始まるヘッダーはすべて削除され、ETag値が表示されるはずです。
清潔で効率的。
キャッシュルールを設定する
Cloudflare でページ ルールを追加し、解決したドメイン名に /* を URL に追加して入力し、キャッシュ レベルで「すべてキャッシュ」を選択し、エッジ キャッシュの TTL を 1 か月に設定します。
Backblazeの設定も必要です。バケット設定で、バケット情報に次の行を追加してください。
{"cache-control":"max-age=720000"}必要に応じてこの時間を調整できます。単位は秒です。720000万秒は約8日間なので、十分な時間でしょう。

これで、再度画像にアクセスすると、レスポンスヘッダーに次の内容が表示されます。
キャッシュ制御: 最大有効期間=720000
cf-cache-status: ヒット
HITが表示されましたか?それはキャッシュが正常に機能していることを意味します。
毎回Backblazeからリソースを取得する必要はありません。CDNが直接リソースを配信するため、高速でBackblazeの無料クォータを節約できます。
ちなみに、Backblazeは1日あたりの無料利用枠を提供していますが、正直なところ、それほど多くはありません。1日あたり10GBのストレージと1GBのダウンロードトラフィックは、ブログ画像をアップロードするだけなら十分ですが、動画や大容量ファイルをアップロードする場合は、Cloudflareのキャッシュを有効活用し、オリジンサーバーへの直接接続を避けることをお勧めします。
PicGoクライアントと連携して
クライアント側の可視化ツールは自由に選択できます。ipicなどの他の選択肢もあります。このセクションでは主にPicGoに焦点を当てます。
GitHubでPicGoを検索し、リリースぺージを見つけて、該当するバージョンをダウンロードしてください。
インストール後、Backblaze B2はS3 APIと互換性があるため、S3プラグインをインストールする必要があります。

次にBackblazeにアクセスし、アプリケーションキーを作成します。アプリケーションキーのページで、「アプリケーションキーを追加」をクリックし、読み取りと書き込みの権限を選択します。


キーIDとアプリケーションキーを取得したら、PicGoのS3プラグインにそれらを入力してください。
ここには注意すべき落とし穴がある。
多くのオンラインチュートリアルではエンドポイントにs3.us-west-xxx.backblazeb2.comという形式を使用していますが、私のようにCloudflareにリンクされたカスタムドメインを使用している場合は、カスタムドメインを入力する必要があります。ノードフィールドにhttps://oss.xxx.comと入力し、次に先ほど作成したバケット名を入力します。


マッチングが完了したらファイルを保存し、テスト画像をアップロードしてください。
カスタムドメイン経由でアップロードおよびアクセスできるのであれば、それは良いことです。
使用状況を表示
Backblaze B2の使用状況を確認したい場合は、Backblaze管理画面の「マイアカウント」ページで確認できます。1日のストレージ容量、ダウンロード数、B2リクエスト数がすべて明確に表示されるため、制限を超えていないかどうかを簡単に確認できます。

実際、このシステム全体の構築はそれほど難しくはありませんでしたが、簡単でもありませんでした。いくつかの落とし穴に遭遇しました。最も厄介だったのは細部への配慮で、一つでも欠けるとアクセス不能になったり、読み込みが遅くなったり、情報が漏洩したりする可能性がありました。
このシステムをセットアップしてみて一番感じたのは、個人ウェブサイトのオーナーや小規模ブログの運営者にとって最適なソリューションだということです。低コストで高速、そして一度設定すれば基本的に何もする必要がない、まさに一生使えるワンストップソリューションです。
さらに、BackblazeをCloudflareでラップすることで、訪問者はカスタムドメインを表示でき、レスポンスヘッダーはクリーンになり、CDNによる高速化も実現するため、有料の画像ホスティングサービスと同等のユーザーエクスペリエンスを提供できます。
正直言って、あらゆるものが使用量に応じて課金されるこの時代に、このようなほぼ無料のプランを見つけるのはかなり素晴らしいことだ。
最後に、もしあなたも画像ホスティングで苦労しているなら、この記事があなたの試行錯誤の時間を少しでも節約できれば幸いです。
ここまで読んでくださったので、もしこの記事が役に立ったと思ったら、ぜひ「いいね!」やシェアをお願いします。最新情報をいち早く受け取りたい方は、フォローもお願いします!⭐
私の記事を読んでいただき、ありがとうございました。また次回お会いしましょう。
Hope Chen Weiliang ブログ ( https://www.chenweiliang.com/ こちらで共有されている記事「CloudflareカスタムドメインをBackblaze B2にバインドする(100%無料トラフィックを実現する)」が参考になるかもしれません。
この記事のリンクを共有することを歓迎します。https://www.chenweiliang.com/cwl-34303.html
