Skip to content

Добавление канала 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

  1. Войдите в Cloudflare Dashboard.
  2. Откройте R2 Object Storage.
  3. Нажмите Create bucket.
  4. Выберите имя bucket, например imgbed.

В этом bucket будут храниться загруженные файлы.

Создание R2 bucket

2. Привяжите bucket к проекту ImgBed

Место binding зависит от типа развертывания:

Тип развертыванияГде настраивается binding
PagesCurrent Pages project -> Settings -> Functions -> R2 bucket bindings
WorkerCurrent Worker -> Settings -> Bindings -> R2 bucket bindings

При добавлении binding важны такие поля:

ПолеЗначение
Variable nameimg_r2
R2 bucketВыберите созданный bucket.

Имя переменной должно быть точно img_r2. Загрузка, чтение и удаление файлов R2 зависят именно от этого имени binding.

3. Разверните проект заново

После сохранения binding повторно разверните ImgBed, чтобы runtime Worker или Pages получил доступ к img_r2.

Что вы увидите в ImgBed

Когда R2 binding станет доступен, откройте:

  1. Системные настройки.
  2. Настройки загрузки.
  3. Канал 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.

Получение Account ID

Настройка

  1. Создайте R2 bucket в Cloudflare.
  2. Откройте настройки Cloudflare для проекта ImgBed.
  3. Добавьте R2 bucket binding.
  4. В поле Variable name укажите img_r2.
  5. Выберите созданный R2 bucket.
  6. Сохраните binding и повторно разверните ImgBed.
  7. Вернитесь в ImgBed -> System Settings -> Upload Settings.
  8. Убедитесь, что канал Cloudflare R2 появился и включен.

Если хотите, чтобы R2 учитывался при выборе канала по доступной емкости, включите quota limit, затем перед сохранением введите Account ID, имя bucket, лимит квоты и threshold.

Настройка лимитов квоты

Как проверить

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

Released as user documentation for CloudFlare ImgBed.