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

Раздача изображений с пользовательских доменов

Доставка изображений поддерживается со всех доменов клиента в рамках одной учётной записи Cloudflare. Чтобы отдавать изображения через пользовательские домены, URL изображения нужно привести к следующему формату:

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

Пример с пользовательским доменом:

https://example.com/cdn-cgi/imagedelivery/ZWd9g1K7eljCn_KDTu_MWA/083eb7b2-5392-4565-b69e-aff66acddd00/public

В этом примере <ACCOUNT_HASH>, <IMAGE_ID> и <VARIANT_NAME> совпадают, но имя хоста и путь префикса отличаются:

Пользовательские пути

По умолчанию Images обслуживаются из /cdn-cgi/imagedelivery/ путь. Можно использовать Transform Rules чтобы переписывать URL и отдавать изображения по собственным путям.

Базовая версия

Планы Free и Pro поддерживают правила сопоставления строк (включая операции с подстановочными знаками), не требующие регулярных выражений.

Этот пример позволяет переписать запрос от example.com/images к example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>.

Чтобы создать правило:

  1. На панели управления Cloudflare перейдите к разделу Обзор правил страницу.

    Перейдите в Обзор ↗
  2. Рядом с URL Rewrite Rules, выберите Создать правило.

  3. В разделе Если входящие запросы соответствуют, выберите Шаблон с подстановочными символами и введите следующее Request URL (замените на собственный домен):

    https://example.com/images/*
  4. В разделе Затем перепишите путь и (или) строку запроса > Путь, введите следующие значения (используя хеш своей учётной записи):

    • Целевой путь: [/] images/*
    • Rewrite to: [/] cdn-cgi/imagedelivery/<ACCOUNT_HASH>/${1}
  5. Выберите Развернуть когда закончите.

Расширенная версия

Этот пример позволяет переписать запрос от example.com/images/some-image-id/w100,h300 к example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>/some-image-id/width=100,height=300 и предполагает, что функция Flexible variants включена.

Чтобы создать правило:

  1. На панели управления Cloudflare перейдите к разделу Обзор правил страницу.

    Перейдите в Обзор ↗
  2. Рядом с URL Rewrite Rules, выберите Создать правило.

  3. В разделе Если входящие запросы соответствуют, выберите Настраиваемое выражение фильтра и затем выберите Edit expression.

  4. В текстовом поле введите (http.request.uri.path matches "^/images/.*$").

  5. В разделе Путь, выберите Rewrite to.

  6. Выберите Динамический и введите следующее в текстовое поле.

regex_replace(
  http.request.uri.path,
  "^/images/(.*)\\?w([0-9]+)&h([0-9]+)$",
  "/cdn-cgi/imagedelivery/<ACCOUNT_HASH>/${1}/width=${2},height=${3}"
)

Ограничения

При использовании собственного домена нельзя напрямую настроить правила WAF, применяемые к запросам, поступающим на /cdn-cgi/imagedelivery/ путь. Если нужно настроить правила WAF, можно использовать Cloudflare Worker для доступа к изображениям и Route на вашем домене для запуска этого worker. Пример worker см. в Обслуживание приватных изображений с помощью токенов подписанных URL.