Добавление канала S3
Когда это лучший вариант
Используйте канал S3, если:
- хотите подключить любое S3-совместимое объектное хранилище, например Cloudflare R2, Backblaze B2, MinIO, AWS S3 или другого совместимого провайдера;
- вам удобна стандартная модель настройки S3:
Endpoint, Access Key и Secret Key; - не хотите использовать нативный Cloudflare R2 binding или ваш провайдер хранилища не является Cloudflare R2.
Что подготовить заранее
| Что нужно | Зачем это нужно |
|---|---|
| S3 Endpoint | API endpoint S3 для объектного хранилища. |
| Имя bucket | Bucket, где будут храниться файлы. |
| Region | Регион хранилища. Для Cloudflare R2 обычно auto. |
| Access Key ID | Идентификатор ключа доступа S3. |
| Secret Access Key | Секретный ключ доступа S3. |
| CDN domain | Необязательный собственный домен для доступа к файлам. |
Пример для Cloudflare R2 через S3 API:
text
Endpoint: https://your-account-id.r2.cloudflarestorage.com
Bucket: your-r2-bucket-name
Region: auto
Access Key ID: copied from the Cloudflare R2 API token
Secret Access Key: copied from the Cloudflare R2 API tokenГде добавить канал
- Откройте системные настройки.
- Перейдите в настройки загрузки.
- Нажмите Add Channel в правом верхнем углу.
- Выберите
S3.
Поля настройки
| Поле | Что означает | Обязательно |
|---|---|---|
| Название канала | Понятное имя S3-канала, например s3test или R2-S3. | Да |
| Enable channel | Определяет, участвует ли канал в выборе хранилища для загрузки. | Рекомендуется |
| Endpoint | Полный endpoint S3-сервиса, включая https://. | Да |
| Custom CDN domain | Необязательно. Если задан, сгенерированные ссылки на файлы будут использовать этот домен. | Нет |
| Bucket name | Имя bucket, например s3test или img-r2. | Да |
| Bucket region | Регион. Для Cloudflare R2 обычно auto. | Да |
| Access Key ID | Идентификатор ключа доступа S3. | Да |
| Secret Access Key | Секретный ключ доступа S3. | Да |
| Path-style access | Переключатель совместимости. По умолчанию выключен. Некоторым MinIO, OpenList или self-hosted S3-сервисам он может понадобиться. | Нет |
| Quota limit | Определяет, учитывается ли емкость канала при выборе хранилища. | Нет |
| Capacity limit | Требуется после включения quota limit, например 10 GB. | Да, если включен quota limit |
| Threshold | Останавливает запись после достижения этого процента использования, например 90%. | Да, если включен quota limit |
| Remark | Заметки для вашего обслуживания. | Нет |
Создание S3 API keys для Cloudflare R2
- Откройте Cloudflare Dashboard.
- Перейдите в
R2 Object Storage. - Найдите
Manage R2 API Tokensили пункт управления API-токенами.

- Создайте R2 API token с доступом к нужному bucket.

- Скопируйте созданные
Access Key IDиSecret Access Key.

- Вернитесь на страницу R2 bucket и проверьте имя bucket.
- Запишите S3 API endpoint для аккаунта. Обычно он выглядит так:
text
https://your-account-id.r2.cloudflarestorage.comНастройка
- Откройте настройки загрузки.
- Нажмите Add Channel.
- Выберите
S3. - Введите понятное имя канала, например
s3test. - В поле
Endpointвведите S3 API endpoint. - Если используете собственный CDN, введите его в
Custom CDN domain; если нет, оставьте поле пустым. - Введите имя bucket.
- Введите region. Для примера с Cloudflare R2 используйте
auto. - Введите Access Key ID и Secret Access Key.
- Оставьте path-style access выключенным, если провайдер явно не требует другого.
- Если нужен контроль емкости, включите quota limit и введите capacity limit и threshold.
- Нажмите Save.

Как проверить
| Проверка | Как проверить |
|---|---|
| Карточка канала появилась | После сохранения на странице настроек загрузки должна появиться карточка S3-канала. |
| Канал включен | Переключатель в правом верхнем углу карточки должен оставаться включенным. |
| Основные поля сохранены | В деталях должны отображаться Endpoint, Bucket, Region, path-style access и связанные поля. |
| Загрузка работает | Загрузите тестовое изображение и убедитесь, что объект появился в целевом bucket. |
| Ссылка открывается | Ссылка на изображение, возвращенная после загрузки, должна открываться нормально. |
| Отображение емкости работает | Если включен quota limit, карточка должна показывать использованную емкость и настроенный лимит. |
Статистика емкости S3 считается по локальным записям файлов в ImgBed, а не через запрос к bucket провайдера в реальном времени. После сохранения S3-конфигурации система пересчитывает учет квоты по текущим записям D1.

FAQ
Нужно ли включать path-style access?
Обычно нет.
Включайте его только тогда, когда ваш S3-совместимый провайдер не поддерживает virtual-hosted-style URL или документация провайдера прямо требует path-style access. Это может понадобиться для некоторых MinIO, self-hosted S3 и OpenList-совместимых endpoint.
Для чего нужен CDN domain?
Если перед bucket стоит CDN или собственный домен доступа, укажите его здесь.
После настройки сгенерированные ссылки на файлы будут использовать этот домен. Если CDN не используется, оставьте поле пустым.
Почему загрузка не проходит?
Сначала проверьте:
- Endpoint содержит полный URL с
https://. - Имя bucket правильное.
- Region соответствует требованиям провайдера.
- Access Key ID и Secret Access Key скопированы полностью.
- Ключ имеет право записи в целевой bucket.
- Провайдер не требует path-style access, либо этот режим включен, если нужен.
Короткий чек-лист
text
Подготовить S3 Endpoint, Bucket, Region, Access Key и Secret Key
-> Открыть настройки загрузки
-> Добавить канал
-> Выбрать S3
-> Ввести Endpoint / Bucket / Region / Access Key / Secret Key
-> При необходимости ввести CDN domain
-> По умолчанию оставить path-style access выключенным
-> При необходимости включить quota limit
-> Сохранить
-> Загрузить тестовое изображение и проверить результат