ドメイン上の /images へのリクエストを AWS S3 バケットへルーティングするには、次の手順を実行します。
-
Cloudflare ダッシュボードで、Cloud Connector ページを開きます。
Cloud Connector を開く ↗ -
クラウドプロバイダー として Amazon S3 を選びます。
-
バケット URL を入力します。URL は次の 2 通りで構成できます。
- サブドメイン形式の URL: ホスト名を
<BUCKET_NAME>.s3.amazonaws.comにします。この場合、ファイルはバケットのルートに置き、URI パスがファイルへ直接対応します。たとえば、https://<YOUR_HOSTNAME>/images/file.jpgはhttps://<BUCKET_NAME>.s3.amazonaws.com/images/file.jpgに対応します。 - URI パス形式の URL: ホスト名を
s3.amazonaws.comにします。この場合、バケット内にimagesフォルダーを作り、その中にファイルを置きます。URI パスにはバケット名が含まれ、https://<YOUR_HOSTNAME>/<BUCKET_NAME>/images/file.jpgがhttps://s3.amazonaws.com/<BUCKET_NAME>/images/file.jpgに対応します。
- サブドメイン形式の URL: ホスト名を
-
(任意)URL Rewrite Rules で URL 構造を調整します。たとえば、
/imagesを/<BUCKET_NAME>/imagesに変える URL リライト を作成すると、URI パス形式の URL 構造に合わせられます。 -
(任意)Cache Rules で、バケットから返るオブジェクトのキャッシュ動作を調整します。たとえば、
/images/*の URI パスに一致する返却オブジェクトを 7 日間キャッシュする キャッシュルール を作成できます。- If incoming requests match > Custom filter expression:
(starts_with(http.request.uri.path, "/images/")) - Cache eligibility: Eligible for cache
- Edge TTL > Ignore cache-control header and use this TTL: 7 days
- If incoming requests match > Custom filter expression:
-
Next を選び、Cloud Connector name に
Route images to S3のような分かりやすい名前を入力します。 -
If で Custom filter expression を選び、次の式を入力します。
http.request.full_uri wildcard "http*://<YOUR_HOSTNAME>/images/*"
<YOUR_HOSTNAME>を目的のホスト名に置き換えます。 -
Deploy を選んでルールを有効化します。
この設定により、http*://<YOUR_HOSTNAME>/images/* に一致するトラフィック(HTTPS と HTTP)が S3 バケットへルーティングされます。<YOUR_HOSTNAME> を実際のホスト名に置き換え、パスは環境に合わせて調整してください。