backblaze の無料 10G ストレージスペース、cloudflare に接続した後はダウンロードトラフィックも無料です。
1、backblaze で新しいストレージバケットを作成します。
その中に適当にファイルをアップロードし、友好的な URL アドレスを確認します。
2、cloudflare で CNAME ドメインを解析します。
目標は backblaze ストレージバケットが提供する友好的な URL アドレスです。例えば、私のは:f005.backblazeb2.com です。
特に注意:もしあなたの cloudflare のドメインがパートナーのホスティングエリアを通過している場合、例えば夢牛などの第三者プラットフォームに接続している場合、同時に CNAME 接続方式であれば、cloudflare のバックエンドで直接解析を追加することができず、正常に使用できません。例えば、ssl やルールが機能しません。
解決方法があるはずですが、公式サイトでは見つけられませんでした。知っている方がいれば教えてください。
3、cloudflare ドメインの ssl を設定します。
公式は設定を完全(厳格)にすることを推奨していますが、私は完全に慣れています。
ルールの中で個別に設定することもできます。
4、cloudflare でドメインのルールを設定します。
ルール 1:URL パスをリライトし、backblaze ストレージバケットの名前を隠します。
ルール – 変換ルール – 新しい URL リライトルールを追加します:
二次ドメインを使用しているため、カスタムフィルタ式を選択します。ホスト名、URL が解析したドメインと等しいか含まれていれば大丈夫です。
次にリライトルールを選択します:Dynamic 動的
concat("/file/jingxialai",http.request.uri.path)
#/file/ は backblaze の固定フォルダ名です
#jingxialai は自分のストレージバケット名に変更します
#その後保存します
ルール 2:HTTP ヘッダーをレスポンスから削除します。
ルール – 変換ルール – 新しいレスポンスヘッダー変更ルールを追加します。
削除ルールを追加し、ヘッダー名を入力します:
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 は存在しないようですが、公式のチュートリアルにはあるので、私も追加しました。
他は以前の URL リライト設定と同じで大丈夫です。その後保存します。
ルール 3:ETag とキャッシュ制御 HTTP ヘッダーでキャッシュ効率を最適化します。
ルール – 変換ルール – レスポンスヘッダーのルールです。
先ほどの HTTP レスポンスヘッダー変更ルールに新しいルールを追加します:
動的に設定 – ヘッダー名を 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])
今、backblaze にアップロードした画像のレスポンスヘッダー情報を確認してみましょう:
x-bz で始まる名前がなく、etag 値が存在します。
5、backblaze ストレージバケットと cloudflare ドメインのキャッシュルールを設定します。
必要に応じて設定します。
cloudflare ルール – 新しいページルールを追加します。
URL:解析したドメイン /*
キャッシュレベル:すべてをキャッシュ
エッジキャッシュ TTL:私は 1 ヶ月に設定しました。
backblaze ストレージバケットのキャッシュ時間を設定します。
バケット設定 – バケット情報:720000、この時間は自分で変更できます。秒単位です。
{"cache-control":"max-age=720000"}
今、backblaze にアップロードしたファイルにアクセスして、レスポンスヘッダー情報を確認します:
cache-control: max-age=720000
cf-cache-status: HIT(キャッシュ成功を示します)
ほぼ終了です。盗難防止リンクを設定するかどうかは、あなたの必要に応じて決めてください。