До основного вмісту

Cloudflare Images і Stream: зберігання та роздача медіа

Cloudflare · 29.09.2026

Навіщо потрібні Cloudflare Images і Stream

Cloudflare Images і Cloudflare Stream закривають одне завдання для різних типів файлів: не зберігати медіа на своєму сервері, а віддавати його через мережу Cloudflare зі зміною розміру, конвертацією формату та захистом від хотлінків. Images працює з картинками — фото товарів, аватари, скриншоти. Stream працює з відео — від навчальних роликів до записів вебінарів.

Обидва сервіси вирішують проблему, знайому власникам VPS на ZevsHost: диск заповнюється медіафайлами, а навантаження на вихідний трафік зростає з кожним відвідувачем. Images і Stream переносять роздачу на edge-сервери Cloudflare, а на origin залишається лише один оригінал файлу.

Чим Cloudflare Images відрізняється від Cloudflare Stream

Різниця не тільки в типі файлу, а й у способі обробки та роздачі готового результату кінцевому користувачу.

ПараметрCloudflare ImagesCloudflare Stream
Тип файлуJPEG, PNG, WebP, GIF, AVIFMP4, MOV, ролики тривалістю до кількох годин
ОбробкаЗміна розміру, обрізка, зміна формату на льотуТранскодинг у HLS і DASH, кілька бітрейтів
РоздачаЧерез image delivery URL з варіантамиЧерез вбудований плеєр або прямі маніфести

Як завантажити зображення через API

Токен створюється в Dashboard у розділі My Profile → API Tokens з правами Images:Edit. Далі завантаження виконується одним запитом:

curl -X POST \
  -F file=@photo.jpg \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/images/v1

Відповідь містить ідентифікатор зображення та базовий URL для роздачі. Для масового завантаження каталогу товарів краще не ганяти curl вручну, а завести автоматизацію, як описано в статті про керування Cloudflare через API та Terraform.

Варіанти зображень: зміна розміру без перезавантаження оригіналу

Один завантажений оригінал роздається в різних розмірах через параметри в URL, без створення копій файлу на диску:

  • width і height — цільові розміри в пікселях
  • fit — scale-down, contain, cover, crop або pad
  • quality — число від 1 до 100, впливає на розмір файлу
  • format — auto підбирає WebP або AVIF за заголовком Accept браузера
  • sharpen — різкість після зміни розміру, число від 0 до 10
https://imagedelivery.net/<account_hash>/<image_id>/w=800,quality=80,format=auto

Коли потрібно додати водяний знак або підписати URL тимчасовим токеном перед видачею посилання, це робить Cloudflare Worker, поставлений перед роздачею зображень.

Як завантажити і роздати відео через Stream

Для відео діє та сама логіка: один запит на завантаження, далі Cloudflare сам готує адаптивні потоки.

curl -X POST \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -F file=@lesson.mp4 \
  https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/stream

Після завантаження Stream нарізає відео на сегменти HLS і DASH і видає ідентифікатор для вбудовування плеєра. Ролик доступний одразу в кількох бітрейтах, а браузер глядача сам обирає варіант під швидкість з'єднання.

Ліміти і на що звернути увагу

Перед переносом медіатеки варто звірити ліміти сервісів, щоб не впертися в них після завантаження сотень файлів:

  • максимальний розмір одного зображення — 10 МБ
  • максимальна тривалість одного відео на Stream — 6 годин
  • зберігання тарифікується окремо від вихідного трафіку на перегляди
  • приватні відео закриваються підписаними URL з обмеженням за часом дії

Підсумок: що зробити перед підключенням

Images і Stream знімають з origin-сервера найважчу частину роботи — роздачу медіафайлів, — і роблять це без правки коду сайту під кожен розмір картинки.

  1. створити API-токен з правами Images:Edit і Stream:Edit
  2. визначити набір варіантів зміни розміру під макети сайту
  3. налаштувати водяний знак або підписані URL для приватного відео
  4. перевірити кешування готових URL через Cache Rules
  5. порівняти з Cloudflare R2, якщо файли треба зберігати без обробки
← Назад до бази знань Поставити питання підтримці