Посібники

Файловий менеджер для MinIO і власного S3: підключіть його до Nubbo

Як підключити власне S3-сумісне сховище, наприклад MinIO, Ceph чи SeaweedFS, до Nubbo: endpoint, ключ, регіон, CORS і що робити в разі помилки.

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 використає ваш або створить новийВи створюєте його заздалегідь
CORSNubbo додасть правило за васПравило додаєте ви
Коли вибиратиНайшвидший спосібКоли не хочете давати доступ до всього облікового запису

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

Крок 1: створіть ключ на своєму сервері

  1. Переконайтеся, що ваш сервер надає API S3 з підписами V4 за публічною URL-адресою HTTPS, наприклад https://s3.your-domain.com.
  2. Створіть ключ, який може створювати бакети й змінювати їхній CORS.
  3. Запишіть URL endpoint і регіон. Якщо на сервері немає регіонів, використовуйте us-east-1.

Крок 2: підключіть бакет у Nubbo

  1. У Nubbo відкрийте Бакети й натисніть Підключити бакет. Виберіть Власний S3 / Самостійний хостинг і натисніть Продовжити.

    Крок «Провайдер» майстра Nubbo з вибраним варіантом «Власний S3 / Самостійний хостинг» Крок «Провайдер» майстра Nubbo з вибраним варіантом «Власний S3 / Самостійний хостинг»
  2. Виберіть Автоматично й натисніть Продовжити.

    Крок «Спосіб підключення» з варіантами «Автоматично» та «З обмеженим ключем» Крок «Спосіб підключення» з варіантами «Автоматично» та «З обмеженим ключем»
  3. На кроці Ваш ключ вставте ключ доступу, секретний ключ, URL endpoint і регіон. Натисніть Перевірити ключ. Nubbo перевірить, що ключ працює і має доступ до всього облікового запису.

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

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

    Крок «Готово» з перевірками підключення, бакета та CORS Крок «Готово» з перевірками підключення, бакета та CORS

Якщо Nubbo не може додати правило CORS з вашим ключем, майстер переведе вас на крок CORS. Тоді виконайте розділ Додайте правило CORS.

Підключення з обмеженим ключем

Крок 1: підготуйте бакет і ключ на своєму сервері

  1. Створіть бакет на своєму сервері (у MinIO, наприклад, командою mc mb).
  2. Створіть ключ із дозволами на читання й запис у цей бакет.
  3. Запишіть URL endpoint і регіон.

Крок 2: підключіть бакет у Nubbo

  1. У розділі Бакети натисніть Підключити бакет, виберіть Власний S3 / Самостійний хостинг, а потім З обмеженим ключем.
  2. Вставте ключ доступу, секретний ключ, endpoint і регіон. Натисніть Перевірити ключ.
  3. Введіть точну назву бакета й натисніть Перевірити доступ.
  4. Майстер перейде на крок 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
  }
]
Крок CORS із правилом, яке треба додати до бакета Крок CORS із правилом, яке треба додати до бакета

Коли правило готове, поверніться в 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 його перевіряє.

Джерела

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