Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Images のカスタムドメイン

Worker で Images 向けのカスタムドメインを設定するか、プレフィックスパスと Cloudflare 登録ドメインで画像を配信します。

最終更新 Markdown で表示Agent セットアップ

すぐに始める場合は、次のボタンを選択します。

Cloudflare にデプロイ

GitHub アカウントにリポジトリが作成され、アプリケーションが Cloudflare Workers にデプロイされます。

カスタムドメインから画像を配信する手順は次のとおりです。

  1. Cloudflare ダッシュボードで Workers & Pages ページを開きます。

    Workers & Pages を開く ↗
  2. Create application > Workers > Create Worker を選び、Worker を作成します。

  3. Worker で Quick edit を選び、次のコードを貼り付けます。

export default {
	async fetch(request) {
		// You can find this in the dashboard, it should look something like this: ZWd9g1K7eljCn_KDTu_MWA
		const accountHash = "";

		const { pathname } = new URL(request.url);

		// A request to something like cdn.example.com/83eb7b2-5392-4565-b69e-aff66acddd00/public
		// will fetch "https://imagedelivery.net/<accountHash>/83eb7b2-5392-4565-b69e-aff66acddd00/public"

		return fetch(`https://imagedelivery.net/${accountHash}${pathname}`);
	},
};
export default {
	async fetch(request): Promise<Response> {
		// You can find this in the dashboard, it should look something like this: ZWd9g1K7eljCn_KDTu_MWA
		const accountHash = "";

		const { pathname } = new URL(request.url);

		// A request to something like cdn.example.com/83eb7b2-5392-4565-b69e-aff66acddd00/public
		// will fetch "https://imagedelivery.net/<accountHash>/83eb7b2-5392-4565-b69e-aff66acddd00/public"

		return fetch(`https://imagedelivery.net/${accountHash}${pathname}`);
	},
} satisfies ExportedHandler;
import { Hono } from 'hono';

interface Env {
  // You can store your account hash as a binding variable
  ACCOUNT_HASH?: string;
}

const app = new Hono<{ Bindings: Env }>();

app.get('*', async (c) => {
  // You can find this in the dashboard, it should look something like this: ZWd9g1K7eljCn_KDTu_MWA
  // Either get it from environment or hardcode it here
  const accountHash = c.env.ACCOUNT_HASH || "";

  const url = new URL(c.req.url);

  // A request to something like cdn.example.com/83eb7b2-5392-4565-b69e-aff66acddd00/public
  // will fetch "https://imagedelivery.net/<accountHash>/83eb7b2-5392-4565-b69e-aff66acddd00/public"

  return fetch(`https://imagedelivery.net/${accountHash}${url.pathname}`);
});

export default app;
from workers import WorkerEntrypoint
from js import URL, fetch

class Default(WorkerEntrypoint):
    async def fetch(self, request):
        # You can find this in the dashboard, it should look something like this: ZWd9g1K7eljCn_KDTu_MWA
        account_hash = ""
        url = URL.new(request.url)

        # A request to something like cdn.example.com/83eb7b2-5392-4565-b69e-aff66acddd00/public
        # will fetch "https://imagedelivery.net/<accountHash>/83eb7b2-5392-4565-b69e-aff66acddd00/public"
        return fetch(f'https://imagedelivery.net/{account_hash}{url.pathname}')

カスタムドメインから画像を配信する別の方法は、cdn-cgi 画像プロキシを起動するパスとして使う cdn-cgi/imagedelivery プレフィックスパスです。

次の例では、ホスト名が Images と同じアカウント配下の Cloudflare プロキシドメインで、その後にプレフィックスパスと、Cloudflare ダッシュボードの Images で確認できる画像の <ACCOUNT_HASH><IMAGE_ID><VARIANT_NAME> が続きます。

https://example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>/<IMAGE_ID>/<VARIANT_NAME>

役に立ちましたか?