Руководства

Файловый менеджер для Cloudflare R2: подключите его к Nubbo

Как подключить bucket Cloudflare R2 к Nubbo: API-токен, Account ID, мастер шаг за шагом, правило CORS и что делать, если что-то не работает.

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
BucketNubbo использует один из ваших или создаёт новыйВы создаёте его заранее
CORSNubbo добавляет правило за васВы добавляете правило сами
Когда выбиратьСамый быстрый способКогда не хотите давать доступ ко всему аккаунту

Ограниченный ключ это минимальный доступ, который нужен Nubbo: Object Read & Write к одному bucket. С ним Nubbo не может показать список ваших bucket или создать новый, поэтому вы вводите имя bucket и сами добавляете правило CORS.

Автоматическое подключение

Шаг 1: создайте ключ в Cloudflare R2

  1. Войдите на dash.cloudflare.com и откройте R2 object storage. Панель может показывать меню на вашем языке.
  2. Откройте API Tokens и нажмите Create Account API token. Туда также можно попасть из Overview, в Account Details, Manage.
  3. Выберите право Admin Read & Write и создайте токен.
  4. Скопируйте Access Key ID и Secret Access Key. Cloudflare показывает secret только один раз. Используйте эти два ключа, а не значение токена.
  5. Скопируйте также свой Account ID, который указан на странице Overview в R2.

Шаг 2: подключите bucket в Nubbo

  1. В Nubbo откройте раздел Buckets и нажмите Подключить bucket. Выберите Cloudflare R2 и нажмите Продолжить.

    Шаг «Провайдер» мастера Nubbo с выбранным Cloudflare R2 Шаг «Провайдер» мастера Nubbo с выбранным Cloudflare R2
  2. Выберите Автоматически и нажмите Продолжить.

    Шаг «Способ подключения» с вариантами «Автоматически» и «С ограниченным ключом» Шаг «Способ подключения» с вариантами «Автоматически» и «С ограниченным ключом»
  3. На шаге Ваш ключ вставьте 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 проверит, что ключ работает и что у него есть доступ ко всему аккаунту.

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

    Шаг «Ваш bucket» со списком bucket и вариантом «Создать новый» Шаг «Ваш bucket» со списком bucket и вариантом «Создать новый»
  5. Просмотрите три проверки, при желании измените Имя в Nubbo и нажмите Завершить. Bucket появится в разделе Buckets, и его можно будет открыть в проводнике.

    Шаг «Готово» с проверками подключения, bucket и CORS Шаг «Готово» с проверками подключения, bucket и CORS

Если Nubbo не может добавить правило CORS с вашим ключом, мастер переведёт вас на шаг CORS. В этом случае следуйте разделу Добавьте правило CORS.

Подключение с ограниченным ключом

Шаг 1: подготовьте bucket и ключ в Cloudflare R2

  1. В R2, Overview нажмите Create bucket и дайте ему имя (строчные буквы, цифры и дефисы). Регион выбирать не нужно. Если данные должны оставаться в ЕС, выберите юрисдикцию EU: вместе с ней меняется endpoint.
  2. Откройте API Tokens и нажмите Create Account API token.
  3. Выберите право Object Read & Write и ограничьте его своим bucket.
  4. Скопируйте Access Key ID, Secret Access Key и свой Account ID.

Шаг 2: подключите bucket в Nubbo

  1. В разделе Buckets нажмите Подключить bucket, выберите Cloudflare R2, а затем С ограниченным ключом.
  2. Вставьте Access Key ID, Secret Access Key и Account ID. Перед тем как нажать Проверить ключ, выберите ту же Юрисдикция, что и у bucket. Нажмите Проверить ключ.
  3. Введите точное имя bucket и нажмите Проверить доступ.
  4. Мастер перейдёт на шаг CORS с правилом, которое нужно добавить.

Добавьте правило CORS

Правило CORS позволяет браузеру загружать и скачивать файлы из вашего bucket на https://nubbo.app. Это то же правило, которое мастер показывает на шаге CORS.

  1. В R2 откройте bucket и перейдите в Settings.
  2. В разделе CORS Policy нажмите Add CORS policy и выберите вкладку JSON.
  3. Вставьте правило и нажмите Save. Cloudflare может применять его до 30 секунд.
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedOrigins": ["https://nubbo.app"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
Шаг «CORS» с правилом, которое нужно добавить в bucket Шаг «CORS» с правилом, которое нужно добавить в bucket

Когда правило сохранено, вернитесь в 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 не берёт плату за исходящий трафик. При этом скачивания считаются операциями чтения.

Источники

Цены и лимиты взяты с официальных страниц ниже. Провайдеры их меняют, поэтому проверьте перед тем, как принимать решение.