← Images / images / optimization / hosted-images
Раздача изображений с пользовательских доменов
Доставка изображений поддерживается со всех доменов клиента в рамках одной учётной записи 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> совпадают, но имя хоста и путь префикса отличаются:
example.com: Проксируемый через Cloudflare домен в том же аккаунте, что и Cloudflare Images./cdn-cgi/imagedelivery: Путь для запускаcdn-cgiпрокси изображений.ZWd9g1K7eljCn_KDTu_MWA: Хеш аккаунта Images. Его можно найти в панели управления Cloudflare Images.083eb7b2-5392-4565-b69e-aff66acddd00: ID изображения.public: Имя варианта.
Пользовательские пути
По умолчанию Images обслуживаются из /cdn-cgi/imagedelivery/ путь. Можно использовать Transform Rules чтобы переписывать URL и отдавать изображения по собственным путям.
Базовая версия
Планы Free и Pro поддерживают правила сопоставления строк (включая операции с подстановочными знаками), не требующие регулярных выражений.
Этот пример позволяет переписать запрос от example.com/images к example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>.
Чтобы создать правило:
-
На панели управления Cloudflare перейдите к разделу Обзор правил страницу.
Перейдите в Обзор ↗ -
Рядом с URL Rewrite Rules, выберите Создать правило.
-
В разделе Если входящие запросы соответствуют, выберите Шаблон с подстановочными символами и введите следующее Request URL (замените на собственный домен):
https://example.com/images/* -
В разделе Затем перепишите путь и (или) строку запроса > Путь, введите следующие значения (используя хеш своей учётной записи):
- Целевой путь: [
/]images/* - Rewrite to: [
/]cdn-cgi/imagedelivery/<ACCOUNT_HASH>/${1}
- Целевой путь: [
-
Выберите Развернуть когда закончите.
Расширенная версия
Этот пример позволяет переписать запрос от example.com/images/some-image-id/w100,h300 к example.com/cdn-cgi/imagedelivery/<ACCOUNT_HASH>/some-image-id/width=100,height=300 и предполагает, что функция Flexible variants включена.
Чтобы создать правило:
-
На панели управления Cloudflare перейдите к разделу Обзор правил страницу.
Перейдите в Обзор ↗ -
Рядом с URL Rewrite Rules, выберите Создать правило.
-
В разделе Если входящие запросы соответствуют, выберите Настраиваемое выражение фильтра и затем выберите Edit expression.
-
В текстовом поле введите
(http.request.uri.path matches "^/images/.*$"). -
В разделе Путь, выберите Rewrite to.
-
Выберите Динамический и введите следующее в текстовое поле.
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.