Nubbo подключается к любому S3-совместимому хранилищу с подписью Signature V4, например MinIO, Ceph или SeaweedFS, на вашем собственном сервере или у другого провайдера. Нужны только URL конечной точки, ключ и регион. Это руководство шаг за шагом проходит мастер Nubbo по обоим путям: автоматическому и с ключом, ограниченным одним bucket.
Что вы получаете
- Просмотр bucket как обычного диска: папки, режимы отображения, поиск, корзина, метки и избранное.
- Загрузка и скачивание файлов напрямую между браузером и вашим сервером. Файлы никогда не проходят через серверы Nubbo.
- Отправка файлов и папок с паролем, сроком действия и лимитом скачиваний, получение файлов в ваш bucket и создание галерей.
- Ваши ключи хранятся в зашифрованном виде (AES-256-GCM), а bucket можно отключить в любой момент.
Перед началом
Вам нужно S3-совместимое хранилище и аккаунт Nubbo. Каждый подключённый bucket учитывается в лимите вашего тарифа: «Бесплатно» позволяет подключить 2, Personal 5, а в Pro ограничений нет. Endpoint должен быть публичным адресом, доступным и серверам Nubbo, и браузеру, и работать по HTTPS, потому что браузер не загружает содержимое по HTTP со страницы https://nubbo.app. Nubbo отклоняет endpoint, указывающие на частные или локальные адреса. Если на вашем сервере нет регионов, оставьте us-east-1.
Выберите способ подключения
Мастер Nubbo предлагает два пути. Оба заканчиваются одинаково: bucket подключён и готов к загрузкам из браузера.
| Автоматически | С ограниченным ключом | |
|---|---|---|
| Ключ | Доступ ко всему аккаунту | Ограничен одним bucket |
| Bucket | Nubbo использует один из ваших или создаёт новый | Вы создаёте его заранее |
| CORS | Nubbo добавляет правило за вас | Вы добавляете правило сами |
| Когда выбирать | Самый быстрый способ | Когда не хотите давать доступ ко всему аккаунту |
Автоматическое подключение
Шаг 1: создайте ключ на своём сервере
- Убедитесь, что ваш сервер предоставляет API S3 с подписями V4 по публичному адресу HTTPS, например
https://s3.your-domain.com. - Создайте ключ, который может создавать bucket и менять их CORS.
- Запишите URL конечной точки и регион. Если на вашем сервере нет регионов, используйте
us-east-1.
Шаг 2: подключите bucket в Nubbo
В Nubbo откройте раздел Buckets и нажмите Подключить bucket. Выберите Пользовательский S3 / Самостоятельный хостинг и нажмите Продолжить.

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

На шаге Ваш ключ вставьте access key, secret key, URL конечной точки и регион. Нажмите Проверить ключ. Nubbo проверит, что ключ работает и что у него есть доступ ко всему аккаунту.

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

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

Если Nubbo не может добавить правило CORS с вашим ключом, мастер переведёт вас на шаг CORS. В этом случае следуйте разделу Добавьте правило CORS.
Подключение с ограниченным ключом
Шаг 1: подготовьте bucket и ключ на своём сервере
- Создайте bucket на своём сервере (в MinIO, например, командой
mc mb). - Создайте ключ с правами на чтение и запись в этот bucket.
- Запишите URL конечной точки и регион.
Шаг 2: подключите bucket в Nubbo
- В разделе Buckets нажмите Подключить bucket, выберите Пользовательский S3 / Самостоятельный хостинг, а затем С ограниченным ключом.
- Вставьте access key, secret key, endpoint и регион. Нажмите Проверить ключ.
- Введите точное имя bucket и нажмите Проверить доступ.
- Мастер перейдёт на шаг CORS с правилом, которое нужно добавить.
Добавьте правило CORS
Правило CORS позволяет браузеру загружать и скачивать файлы из вашего bucket на https://nubbo.app. Это то же правило, которое мастер показывает на шаге CORS.
Способ настройки CORS зависит от программного обеспечения:
- MinIO (community edition) не поддерживает CORS на уровне bucket: используется глобальная настройка (
MINIO_API_CORS_ALLOW_ORIGIN), которая по умолчанию разрешает любой источник. Если вы её не меняли, делать ничего не нужно: нажмите Готово, проверить, и проверка пройдёт. Если меняли, добавьтеhttps://nubbo.app. - Ceph и SeaweedFS поддерживают CORS на уровне bucket через API S3. Примените это правило привычным инструментом (например,
aws s3api put-bucket-corsсо своим endpoint) или позвольте Nubbo сделать это на автоматическом пути.
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
"AllowedOrigins": ["https://nubbo.app"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3600
}
]

Когда правило готово, вернитесь в Nubbo и нажмите Готово, проверить. В Ceph и SeaweedFS, если ваш ключ может менять CORS, кнопка Попробовать настроить за меня сделает это за вас.
Если что-то пошло не так
| Сообщение в Nubbo | Что делать |
|---|---|
| «Неверные учётные данные. Проверьте access key и secret access key.» | Скопируйте оба ключа ещё раз, без пробелов в начале и в конце. |
| «Похоже, этот ключ ограничен одним bucket. Можно продолжить по ограниченному пути или создать ключ с полным доступом.» | Нажмите «Продолжить с ограниченным ключом» или создайте ключ с доступом ко всему аккаунту и нажмите «Попробовать другой ключ». |
| «Bucket не найден. Проверьте имя и регион.» | Проверьте точное имя bucket и то, что выбранный регион совпадает с регионом bucket. |
| «У вашего ключа нет прав на создание bucket.» | Используйте ключ с полным доступом или создайте bucket в своей панели и нажмите «Он уже создан в моей панели». |
| «Это имя уже занято у этого провайдера; попробуйте другое.» | Имена bucket уникальны в пределах всего провайдера: выберите другое. |
| «У вашего ключа нет прав на эту настройку.» | Добавьте правило CORS вручную, как описано выше. |
| «Пока не работает. Проверьте правило и попробуйте снова; некоторым провайдерам нужна минута, чтобы его применить.» | Убедитесь, что источник указан точно как https://nubbo.app без косой черты в конце, подождите минуту и проверьте снова. |
| «Этот bucket уже используется.» | Этот bucket уже подключён в Nubbo, в вашем аккаунте или в чужом. |
| «Не удалось подключиться к конечной точке S3. Проверьте URL конечной точки.» | Убедитесь, что адрес публичный, использует HTTPS и отвечает из интернета, а не только из вашей сети. |
| «URL конечной точки недействителен. Проверьте формат.» | Введите полный адрес с https:// и без имени bucket. Это сообщение появляется и тогда, когда адрес указывает на частный или локальный IP либо имя не разрешается. |
| «Время ожидания соединения истекло. Повторите попытку.» | Проверьте файрвол сервера и доступность порта извне. |
Сколько это стоит
Если вы сравниваете собственное хранилище с провайдером, сопоставьте цены и лимиты в статье S3, R2, Spaces, Wasabi и Backblaze B2: сравнение.
Частые вопросы
Какие собственные хранилища работают с Nubbo?
Любое хранилище, совместимое с API S3 с подписями V4, например MinIO, Ceph или SeaweedFS, а также S3-совместимые провайдеры, которых нет в списке.
Можно ли подключить MinIO в моей локальной сети?
Нет. Endpoint должен быть публичным адресом: Nubbo отклоняет частные и локальные адреса, а браузеру тоже нужно до него достучаться.
Какой регион использовать, если на моём сервере нет регионов?
us-east-1. Это регион по умолчанию для большинства S3-совместимых серверов.
Почему Nubbo не может настроить CORS в MinIO?
Потому что бесплатная редакция MinIO (community edition) не поддерживает CORS на уровне bucket. Она использует глобальную настройку, которая по умолчанию разрешает любой источник, и Nubbo это проверяет.
Источники
Цены и лимиты взяты с официальных страниц ниже. Провайдеры их меняют, поэтому проверьте перед тем, как принимать решение.