INTEGRITY Документация

Custom Domain для Images

Если вы хотите быстро начать, нажмите на кнопку ниже.

Deploy to Cloudflare

Это создаёт репозиторий в вашем аккаунте GitHub и разворачивает приложение в Cloudflare Workers.

Чтобы отдавать изображения с собственного домена:

  1. На панели управления Cloudflare перейдите к разделу Workers & Pages страницу.

    Перейдите в Workers & Pages ↗
  2. Выберите Создать приложение > Workers > Создать 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 прокси изображений.

Ниже приведён пример, где имя хоста представляет собой домен, проксируемый Cloudflare, в том же аккаунте, что и Image, а затем следуют префиксный путь и изображение <ACCOUNT_HASH>, <IMAGE_ID> и <VARIANT_NAME> который можно найти в Изображения в дашборде Cloudflare.

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