跳转到内容
搜索文档

使用 Images 的自定义域

在 Worker 中使用 Cloudflare Images 自定义域。 prefix path and Cloudflare registered domain.

最后更新 查看 MarkdownAgent 设置

如需快速上手,请点击下方按钮。

Deploy to Cloudflare

这会在你的 GitHub 账户中创建仓库,并将应用部署到 Cloudflare Workers。

要从自定义域提供图片:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。

    Go to Workers & Pages ↗
  2. 选择 Create application(创建应用程序) > Workers > Create Worker(创建 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/imagedelivery 前缀路径,该路径用于触发 cdn-cgi 图片代理。

以下示例中,主机名是与 Image 位于同一账户下的 Cloudflare 代理域,后跟前缀路径以及可在 Cloudflare 仪表板的 Images 中找到的 <ACCOUNT_HASH><IMAGE_ID><VARIANT_NAME>

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

这篇文档对您有帮助吗?