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

Виберіть Автоматично й натисніть Продовжити.

На кроці Ваш ключ вставте ключ доступу, секретний ключ, URL endpoint і регіон. Натисніть Перевірити ключ. Nubbo перевірить, що ключ працює і має доступ до всього облікового запису.

Виберіть один зі своїх бакетів і натисніть Використати цей bucket або виберіть Створити новий, введіть назву (і виберіть регіон, якщо майстер попросить) та натисніть Створити й підготувати. Nubbo додасть до бакета правило CORS, яке дозволяє завантаження лише із застосунку, і збереже правила, що вже є.

Перегляньте три перевірки, за бажання змініть Назва в Nubbo і натисніть Завершити. Бакет з’явиться в розділі Бакети, і його можна відкрити в провіднику.

Якщо Nubbo не може додати правило CORS з вашим ключем, майстер переведе вас на крок CORS. Тоді виконайте розділ Додайте правило CORS.
Підключення з обмеженим ключем
Крок 1: підготуйте бакет і ключ на своєму сервері
- Створіть бакет на своєму сервері (у MinIO, наприклад, командою
mc mb). - Створіть ключ із дозволами на читання й запис у цей бакет.
- Запишіть URL endpoint і регіон.
Крок 2: підключіть бакет у Nubbo
- У розділі Бакети натисніть Підключити бакет, виберіть Власний S3 / Самостійний хостинг, а потім З обмеженим ключем.
- Вставте ключ доступу, секретний ключ, endpoint і регіон. Натисніть Перевірити ключ.
- Введіть точну назву бакета й натисніть Перевірити доступ.
- Майстер перейде на крок CORS із правилом, яке треба додати.
Додайте правило CORS
Правило CORS дозволяє браузеру завантажувати файли у ваш бакет і з нього на https://nubbo.app. Це те саме правило, яке майстер показує на кроці CORS.
Спосіб налаштування CORS залежить від програмного забезпечення:
- MinIO (community edition) не приймає CORS на рівні бакета: він використовує глобальне налаштування (
MINIO_API_CORS_ALLOW_ORIGIN), яке за замовчуванням дозволяє будь-яке джерело. Якщо ви його не змінювали, нічого робити не треба: натисніть Готово, перевірити, і перевірка пройде. Якщо змінювали, додайтеhttps://nubbo.app. - Ceph і SeaweedFS приймають CORS на рівні бакета через 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 | Що робити |
|---|---|
| «Недійсні облікові дані. Перевірте ключ доступу та секретний ключ доступу.» | Скопіюйте обидва ключі ще раз, без пробілів на початку й у кінці. |
| «Схоже, цей ключ обмежений одним bucket. Можна продовжити обмеженим шляхом або створити ключ із повним доступом.» | Натисніть «Продовжити з обмеженим ключем» або створіть ключ із доступом до всього облікового запису й натисніть «Спробувати інший ключ». |
| «Bucket не знайдено. Перевірте назву та регіон.» | Перевірте точну назву бакета й те, що вибраний регіон збігається з регіоном бакета. |
| «Ваш ключ не має дозволу створювати bucket.» | Використайте ключ із повним доступом або створіть бакет у своїй панелі й натисніть «Він уже створений у моїй панелі». |
| «Ця назва вже використовується в цього провайдера; спробуйте іншу.» | Назви бакетів унікальні в межах провайдера: виберіть іншу. |
| «Ваш ключ не має дозволу на це налаштування.» | Додайте правило CORS вручну, як описано вище. |
| «Ще не працює. Перегляньте правило й перевірте знову; деяким провайдерам потрібна хвилина, щоб його застосувати.» | Переконайтеся, що джерело (origin) саме https://nubbo.app без скісної риски в кінці, зачекайте хвилину й перевірте знову. |
| «Цей bucket вже використовується.» | Цей бакет уже підключено в Nubbo, у вашому чи в іншому обліковому записі. |
| «Не вдалося з’єднатися з кінцевою точкою S3. Перевірте URL кінцевої точки.» | Переконайтеся, що URL публічна, працює через HTTPS і відповідає з інтернету, а не лише з вашої мережі. |
| «URL кінцевої точки недійсний. Перевірте формат.» | Введіть повну URL-адресу з https:// і без назви бакета. Це повідомлення також з’являється, коли URL вказує на приватну чи локальну адресу або ім’я не розпізнається. |
| «Час очікування з’єднання вичерпано. Спробуйте ще раз.» | Перевірте брандмауер сервера й те, що порт доступний ззовні. |
Скільки це коштує
Якщо ви зважуєте власне сховище проти провайдера, порівняйте ціни й ліміти в статті S3, R2, Spaces, Wasabi і Backblaze B2: порівняння.
Поширені запитання
Які власні сховища працюють з Nubbo?
Будь-яке сховище, сумісне з API S3 з підписами V4, наприклад MinIO, Ceph чи SeaweedFS, а також S3-сумісні провайдери, яких немає в списку.
Чи можна підключити MinIO в моїй локальній мережі?
Ні. Endpoint має бути публічною URL-адресою: Nubbo відхиляє приватні й локальні адреси, а браузер також має до нього діставатися.
Який регіон використовувати, якщо на моєму сервері немає регіонів?
us-east-1. Це регіон за замовчуванням на більшості S3-сумісних серверів.
Чому Nubbo не може налаштувати CORS у MinIO?
Бо безкоштовна версія MinIO (community edition) не підтримує CORS на рівні бакета. Вона використовує глобальне налаштування, яке за замовчуванням дозволяє будь-яке джерело, і Nubbo його перевіряє.
Джерела
Ціни та ліміти взято з офіційних сторінок нижче. Провайдери їх змінюють, тож перевірте, перш ніж ухвалювати рішення.