Nubbo подключается к Cloudflare R2 с помощью API-токена R2 и Account ID вашего аккаунта. Через несколько минут ваши bucket окажутся в файловом проводнике с прямыми загрузками, ссылками для доступа и галереями. Это руководство шаг за шагом проходит мастер Nubbo по обоим путям: автоматическому и с ключом, ограниченным одним bucket.
Что вы получаете
- Просмотр bucket как обычного диска: папки, режимы отображения, поиск, корзина, метки и избранное.
- Загрузка и скачивание файлов напрямую между браузером и Cloudflare R2. Файлы никогда не проходят через серверы Nubbo.
- Отправка файлов и папок с паролем, сроком действия и лимитом скачиваний, получение файлов в ваш bucket и создание галерей.
- Ваши ключи хранятся в зашифрованном виде (AES-256-GCM), а bucket можно отключить в любой момент.
Перед началом
Вам нужен аккаунт Cloudflare R2 и аккаунт Nubbo. Каждый подключённый bucket учитывается в лимите вашего тарифа: «Бесплатно» позволяет подключить 2, Personal 5, а в Pro ограничений нет. Перед созданием первого bucket Cloudflare попросит активировать подписку R2 в панели управления. Если у вашего bucket есть юрисдикция (EU, FedRAMP или US), вы выбираете её в мастере, и Nubbo использует endpoint этой юрисдикции.
Выберите способ подключения
Мастер Nubbo предлагает два пути. Оба заканчиваются одинаково: bucket подключён и готов к загрузкам из браузера.
| Автоматически | С ограниченным ключом | |
|---|---|---|
| Ключ | Доступ ко всему аккаунту | Ограничен одним bucket |
| Bucket | Nubbo использует один из ваших или создаёт новый | Вы создаёте его заранее |
| CORS | Nubbo добавляет правило за вас | Вы добавляете правило сами |
| Когда выбирать | Самый быстрый способ | Когда не хотите давать доступ ко всему аккаунту |
Ограниченный ключ это минимальный доступ, который нужен Nubbo: Object Read & Write к одному bucket. С ним Nubbo не может показать список ваших bucket или создать новый, поэтому вы вводите имя bucket и сами добавляете правило CORS.
Автоматическое подключение
Шаг 1: создайте ключ в Cloudflare R2
- Войдите на dash.cloudflare.com и откройте R2 object storage. Панель может показывать меню на вашем языке.
- Откройте API Tokens и нажмите Create Account API token. Туда также можно попасть из Overview, в Account Details, Manage.
- Выберите право Admin Read & Write и создайте токен.
- Скопируйте Access Key ID и Secret Access Key. Cloudflare показывает secret только один раз. Используйте эти два ключа, а не значение токена.
- Скопируйте также свой Account ID, который указан на странице Overview в R2.
Шаг 2: подключите bucket в Nubbo
В Nubbo откройте раздел Buckets и нажмите Подключить bucket. Выберите Cloudflare R2 и нажмите Продолжить.

Выберите Автоматически и нажмите Продолжить.

На шаге Ваш ключ вставьте Access Key ID, Secret Access Key и Account ID. Nubbo составит endpoint вашего аккаунта по Account ID. Регион R2 всегда
auto. Перед тем как нажать Проверить ключ, выберите Юрисдикция вашего bucket: По умолчанию (без юрисдикции) для большинства bucket или EU, FedRAMP или US. Вместе с ней меняется endpoint (https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.comдля ЕС), а в списке видны только bucket этой юрисдикции. Нажмите Проверить ключ. Nubbo проверит, что ключ работает и что у него есть доступ ко всему аккаунту.

Выберите один из своих bucket и нажмите Использовать этот bucket или выберите Создать новый, введите имя (и выберите регион, если мастер его спросит) и нажмите Создать и подготовить. Nubbo добавит в bucket правило CORS, которое разрешает загрузку и скачивание только из приложения, и сохранит уже существующие правила.

Просмотрите три проверки, при желании измените Имя в Nubbo и нажмите Завершить. Bucket появится в разделе Buckets, и его можно будет открыть в проводнике.

Если Nubbo не может добавить правило CORS с вашим ключом, мастер переведёт вас на шаг CORS. В этом случае следуйте разделу Добавьте правило CORS.
Подключение с ограниченным ключом
Шаг 1: подготовьте bucket и ключ в Cloudflare R2
- В R2, Overview нажмите Create bucket и дайте ему имя (строчные буквы, цифры и дефисы). Регион выбирать не нужно. Если данные должны оставаться в ЕС, выберите юрисдикцию EU: вместе с ней меняется endpoint.
- Откройте API Tokens и нажмите Create Account API token.
- Выберите право Object Read & Write и ограничьте его своим bucket.
- Скопируйте Access Key ID, Secret Access Key и свой Account ID.
Шаг 2: подключите bucket в Nubbo
- В разделе Buckets нажмите Подключить bucket, выберите Cloudflare R2, а затем С ограниченным ключом.
- Вставьте Access Key ID, Secret Access Key и Account ID. Перед тем как нажать Проверить ключ, выберите ту же Юрисдикция, что и у bucket. Нажмите Проверить ключ.
- Введите точное имя bucket и нажмите Проверить доступ.
- Мастер перейдёт на шаг CORS с правилом, которое нужно добавить.
Добавьте правило CORS
Правило CORS позволяет браузеру загружать и скачивать файлы из вашего bucket на https://nubbo.app. Это то же правило, которое мастер показывает на шаге CORS.
- В R2 откройте bucket и перейдите в Settings.
- В разделе CORS Policy нажмите Add CORS policy и выберите вкладку JSON.
- Вставьте правило и нажмите Save. Cloudflare может применять его до 30 секунд.
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
"AllowedOrigins": ["https://nubbo.app"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3600
}
]

Когда правило сохранено, вернитесь в Nubbo и нажмите Готово, проверить. Если вашему ключу разрешено менять CORS, кнопка Попробовать настроить за меня сделает это за вас.
Если что-то пошло не так
| Сообщение в Nubbo | Что делать |
|---|---|
| «Похоже, этот ключ ограничен одним bucket. Можно продолжить по ограниченному пути или создать ключ с полным доступом.» | Нажмите «Продолжить с ограниченным ключом» или создайте ключ с доступом ко всему аккаунту и нажмите «Попробовать другой ключ». |
| «У вашего ключа нет прав на создание bucket.» | Используйте ключ с полным доступом или создайте bucket в своей панели и нажмите «Он уже создан в моей панели». |
| «Это имя уже занято у этого провайдера; попробуйте другое.» | Имена bucket уникальны в пределах всего провайдера: выберите другое. |
| «У вашего ключа нет прав на эту настройку.» | Добавьте правило CORS вручную, как описано выше. |
| «Пока не работает. Проверьте правило и попробуйте снова; некоторым провайдерам нужна минута, чтобы его применить.» | Убедитесь, что источник указан точно как https://nubbo.app без косой черты в конце, подождите минуту и проверьте снова. |
| «Этот bucket уже используется.» | Этот bucket уже подключён в Nubbo, в вашем аккаунте или в чужом. |
| «Неверные учётные данные. Проверьте access key и secret access key.» | Убедитесь, что вы вставили Access Key ID и Secret Access Key токена, а не значение API-токена Cloudflare. |
| «Bucket не найден. Проверьте имя и регион.» | Проверьте имя и совпадает ли юрисдикция в Nubbo с юрисдикцией bucket (R2 показывает её в Settings bucket). |
Сколько это стоит
R2 не берёт плату за исходящий трафик и предлагает ежемесячный бесплатный лимит. Мы разбираем это в статье Бесплатный тариф Cloudflare R2.
Частые вопросы
Где найти Account ID в Cloudflare?
На странице Overview в R2, в разделе Account Details. Это строка из 32 символов: цифры и буквы от a до f.
Какие права нужны токену R2?
Минимальный доступ, который нужен Nubbo, это Object Read & Write, ограниченный вашим bucket, при подключении с ограниченным ключом: вы вводите имя bucket и сами добавляете правило CORS. Для автоматического подключения нужен Admin Read & Write, с которым Nubbo показывает список ваших bucket, создаёт новый и настраивает его CORS.
Какой регион использовать с R2?
Никакой: R2 использует регион auto, и Nubbo подставляет его сам. Подсказки о расположении (location hints) в Cloudflare не влияют на подключение bucket.
Можно ли подключить bucket R2 с юрисдикцией, например ЕС?
Да. На шаге Ваш ключ выберите юрисдикцию bucket (EU, FedRAMP или US). У каждой свой endpoint, например https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com, и в ней видны только созданные в ней bucket.
Стоят ли скачивания из Nubbo денег за исходящий трафик в R2?
Нет. R2 не берёт плату за исходящий трафик. При этом скачивания считаются операциями чтения.
Источники
Цены и лимиты взяты с официальных страниц ниже. Провайдеры их меняют, поэтому проверьте перед тем, как принимать решение.