Руководства

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

Как подключить bucket Backblaze B2 к Nubbo: ключ приложения, регион, мастер шаг за шагом, CORS через B2 CLI и что делать при ошибке.

Nubbo подключается к Backblaze B2 через его S3-совместимый API с ключом приложения и регионом вашего аккаунта. Через несколько минут ваши bucket окажутся в файловом проводнике с прямыми загрузками, ссылками для доступа и галереями. Это руководство шаг за шагом проходит мастер Nubbo по обоим путям: автоматическому и с ключом, ограниченным одним bucket.

Что вы получаете

  • Просмотр bucket как обычного диска: папки, режимы отображения, поиск, корзина, метки и избранное.
  • Загрузка и скачивание файлов напрямую между браузером и Backblaze B2. Файлы никогда не проходят через серверы Nubbo.
  • Отправка файлов и папок с паролем, сроком действия и лимитом скачиваний, получение файлов в ваш bucket и создание галерей.
  • Ваши ключи хранятся в зашифрованном виде (AES-256-GCM), а bucket можно отключить в любой момент.

Перед началом

Вам нужен аккаунт Backblaze B2 и аккаунт Nubbo. Каждый подключённый bucket учитывается в лимите вашего тарифа: «Бесплатно» позволяет подключить 2, Personal 5, а в Pro ограничений нет. В B2 регион выбирается при создании аккаунта и действует для всех его bucket. Его видно в endpoint любого bucket, в виде s3.<region>.backblazeb2.com: именно этот регион нужно выбрать в Nubbo. Главный ключ аккаунта не работает с API S3, поэтому всегда создавайте ключ приложения.

Выберите способ подключения

Мастер Nubbo предлагает два пути. Оба заканчиваются одинаково: bucket подключён и готов к загрузкам из браузера.

АвтоматическиС ограниченным ключом
КлючДоступ ко всему аккаунтуОграничен одним bucket
BucketNubbo использует один из ваших или создаёт новыйВы создаёте его заранее
CORSNubbo добавляет правило за васВы добавляете правило сами
Когда выбиратьСамый быстрый способКогда не хотите давать доступ ко всему аккаунту

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

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

  1. На backblaze.com откройте B2 Cloud Storage, Application Keys и нажмите Add a New Application Key. Не используйте главный ключ приложения (master application key).
  2. Дайте ключу имя, для Allow Access to Bucket(s) выберите All, а для Type of Access выберите Read and Write. Нажмите Create New Key.
  3. Скопируйте keyID (access key) и applicationKey (secret). Backblaze показывает applicationKey только один раз.
  4. В разделе Buckets посмотрите endpoint любого bucket, чтобы узнать свой регион.

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

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

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

    Шаг «Способ подключения» с вариантами «Автоматически» и «С ограниченным ключом» Шаг «Способ подключения» с вариантами «Автоматически» и «С ограниченным ключом»
  3. На шаге Ваш ключ вставьте keyID и applicationKey и выберите регион своего аккаунта. Нажмите Проверить ключ. Nubbo проверит, что ключ работает и что у него есть доступ ко всему аккаунту.

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

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

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

Затем в bucket откройте Lifecycle Settings и выберите Keep only the last version of the file. Иначе B2 будет хранить все версии, и удаление из Nubbo не освободит место.

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

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

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

  1. В разделе Buckets нажмите Create a Bucket, дайте ему имя и оставьте его Private.
  2. В bucket откройте Lifecycle Settings и выберите Keep only the last version of the file.
  3. Посмотрите endpoint bucket, чтобы узнать регион.
  4. В разделе Application Keys нажмите Add a New Application Key, ограничьте доступ своим bucket с правами Read and Write и отметьте Allow List All Bucket Names. Нажмите Create New Key.
  5. Скопируйте keyID и applicationKey.

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

  1. В разделе Buckets нажмите Подключить bucket, выберите Backblaze B2, а затем С ограниченным ключом.
  2. Вставьте keyID и applicationKey и выберите регион. Нажмите Проверить ключ.
  3. Введите точное имя bucket и нажмите Проверить доступ.
  4. Мастер перейдёт на шаг CORS с правилом, которое нужно добавить.

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

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

Правила CORS в консоли B2 заданы заранее и не позволяют выбрать операции, поэтому правило Nubbo добавляется через инструмент командной строки B2 (b2) с ключом, которому разрешено менять настройки bucket.

  1. Установите CLI, например командой pip install b2.
  2. Войдите с keyID и applicationKey: b2 account authorize.
  3. Примените правило, заменив your-bucket именем bucket. allPrivate оставляет bucket приватным.
b2 bucket update --cors-rules '[{"corsRuleName":"nubbo","allowedOrigins":["https://nubbo.app"],"allowedOperations":["s3_get","s3_head","s3_put","s3_post","s3_delete"],"allowedHeaders":["*"],"exposeHeaders":["etag"],"maxAgeSeconds":3600}]' your-bucket allPrivate
Шаг «CORS» с правилом, которое нужно добавить в bucket Шаг «CORS» с правилом, которое нужно добавить в bucket

Когда правило применено, вернитесь в Nubbo и нажмите Готово, проверить. Если вашему ключу разрешено менять CORS, кнопка Попробовать настроить за меня сделает это за вас.

Если что-то пошло не так

Сообщение в NubboЧто делать
«Похоже, этот ключ ограничен одним bucket. Можно продолжить по ограниченному пути или создать ключ с полным доступом.»Нажмите «Продолжить с ограниченным ключом» или создайте ключ с доступом ко всему аккаунту и нажмите «Попробовать другой ключ».
«Bucket не найден. Проверьте имя и регион.»Проверьте точное имя bucket и то, что выбранный регион совпадает с регионом bucket.
«У вашего ключа нет прав на создание bucket.»Используйте ключ с полным доступом или создайте bucket в своей панели и нажмите «Он уже создан в моей панели».
«Это имя уже занято у этого провайдера; попробуйте другое.»Имена bucket уникальны в пределах всего провайдера: выберите другое.
«У вашего ключа нет прав на эту настройку.»Добавьте правило CORS вручную, как описано выше.
«Пока не работает. Проверьте правило и попробуйте снова; некоторым провайдерам нужна минута, чтобы его применить.»Убедитесь, что источник указан точно как https://nubbo.app без косой черты в конце, подождите минуту и проверьте снова.
«Этот bucket уже используется.»Этот bucket уже подключён в Nubbo, в вашем аккаунте или в чужом.
«Неверные учётные данные. Проверьте access key и secret access key.»Убедитесь, что вы не используете главный ключ приложения: он не работает с API S3.
«Bucket находится в другом регионе. Проверьте настроенный регион.»Выберите в Nubbo регион, указанный в endpoint bucket.

Сколько это стоит

Backblaze B2 берёт плату за каждый ТБ, первые 10 ГБ бесплатны, а исходящий трафик бесплатен в объёме до трёх раз больше хранимого. Мы разбираем это в статье Цены Backblaze B2.

Частые вопросы

Можно ли использовать главный ключ приложения Backblaze?

Нет. Backblaze не поддерживает главный ключ в своём S3-совместимом API. Создайте ключ приложения в разделе Application Keys.

Какой регион выбрать в Nubbo для B2?

Тот, что указан в endpoint ваших bucket, в виде s3.<region>.backblazeb2.com. В B2 все bucket одного аккаунта находятся в одном регионе.

Почему CORS настраивается через B2 CLI?

Потому что правила в консоли заданы заранее и не позволяют выбрать операции, которые нужны Nubbo. CLI проще всего применяет точное правило; подойдёт и любой инструмент S3, который выполняет PutBucketCors на endpoint B2.

Почему удаление в Nubbo не освобождает место в B2?

Потому что B2 по умолчанию хранит предыдущие версии. В Lifecycle Settings bucket выберите Keep only the last version of the file.

Источники

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