Добавление канала Cloudflare R2
Когда это лучший вариант
Используйте Cloudflare R2, если:
- сайт ImgBed уже развернут в Cloudflare, и вы хотите хранить файлы в R2 bucket в том же аккаунте;
- не хотите отдельно настраивать S3 endpoint, access key и secret key;
- хотите, чтобы чтение и запись шли через R2 binding в Worker или Pages с минимальной настройкой.
Коротко:
R2-канал не создается вручную в админ-панели ImgBed. Сначала нужно привязать R2 bucket к проекту Cloudflare, а имя переменной binding должно быть ровно img_r2.
Что подготовить заранее
- Аккаунт Cloudflare.
- Уже созданный R2 bucket.
- Права на управление Cloudflare-проектом, где развернут ImgBed.
Настройка в Cloudflare
1. Создайте R2 bucket
- Войдите в Cloudflare Dashboard.
- Откройте
R2 Object Storage. - Нажмите Create bucket.
- Выберите имя bucket, например
imgbed.
В этом bucket будут храниться загруженные файлы.

2. Привяжите bucket к проекту ImgBed
Место binding зависит от типа развертывания:
| Тип развертывания | Где настраивается binding |
|---|---|
| Pages | Current Pages project -> Settings -> Functions -> R2 bucket bindings |
| Worker | Current Worker -> Settings -> Bindings -> R2 bucket bindings |
При добавлении binding важны такие поля:
| Поле | Значение |
|---|---|
| Variable name | img_r2 |
| R2 bucket | Выберите созданный bucket. |
Имя переменной должно быть точно img_r2. Загрузка, чтение и удаление файлов R2 зависят именно от этого имени binding.
3. Разверните проект заново
После сохранения binding повторно разверните ImgBed, чтобы runtime Worker или Pages получил доступ к img_r2.
Что вы увидите в ImgBed
Когда R2 binding станет доступен, откройте:
- Системные настройки.
- Настройки загрузки.
- Канал
Cloudflare R2.
Система автоматически создает один фиксированный канал:
| Поле | Фиксированное значение |
|---|---|
| Название канала | Cloudflare R2 |
| Тип канала | cfr2 |
| Режим хранения | binding |
| Источник конфигурации | Environment binding |
Это фиксированный канал через binding. Его не нужно создавать кнопкой Add Channel, и его нельзя удалить как обычный канал.
Поля, которые можно изменить в админ-панели
| Поле | Что делает | Обязательно |
|---|---|---|
| Enable channel | Определяет, участвует ли R2 в выборе канала для загрузки. | Да |
| Account ID | Нужен только при включенных лимитах квоты, когда требуется запрашивать официальное использование R2. | Рекомендуется при включенных квотах |
| Bucket name | Нужен только при включенных лимитах квоты, когда требуется запрашивать официальное использование R2. | Рекомендуется при включенных квотах |
| Quota limit | Определяет, учитывается ли емкость канала при выборе хранилища. | Нет |
| Threshold | Останавливает запись в этот канал после достижения указанного процента использования. | Да, если включены квоты |
Account ID можно скопировать из панели информации аккаунта в Cloudflare dashboard. Заполняйте его только тогда, когда хотите, чтобы ImgBed запрашивал и контролировал использование квоты R2.

Настройка
- Создайте R2 bucket в Cloudflare.
- Откройте настройки Cloudflare для проекта ImgBed.
- Добавьте R2 bucket binding.
- В поле
Variable nameукажитеimg_r2. - Выберите созданный R2 bucket.
- Сохраните binding и повторно разверните ImgBed.
- Вернитесь в ImgBed -> System Settings -> Upload Settings.
- Убедитесь, что канал
Cloudflare R2появился и включен.
Если хотите, чтобы R2 учитывался при выборе канала по доступной емкости, включите quota limit, затем перед сохранением введите Account ID, имя bucket, лимит квоты и threshold.

Как проверить
- Фиксированный канал
Cloudflare R2появляется в настройках загрузки. - На карточке канала видно, что он включен.
- Небольшой тестовый файл успешно загружается, а возвращенная ссылка открывается нормально.
- Если при открытии файла появляется
R2 database binding is not configured, runtime не получил bindingimg_r2. Проверьте имя binding в Cloudflare и разверните проект заново.