Nubbo підключається до Cloudflare R2 за допомогою токена API R2 і Account ID вашого облікового запису. За кілька хвилин ваші бакети опиняться у файловому провіднику з прямими завантаженнями, посиланнями для спільного доступу та галереями. Цей посібник крок за кроком проходить майстер Nubbo обома шляхами: автоматичним або з ключем, обмеженим одним бакетом.
Що ви отримуєте
- Переглядайте бакет як диск: папки, подання, пошук, кошик, мітки й обране.
- Завантажуйте файли напряму між браузером і Cloudflare R2. Файли ніколи не проходять через сервери Nubbo.
- Діліться файлами й папками з паролем, терміном дії та лімітом завантажень, отримуйте файли у свій бакет і створюйте галереї.
- Ваші ключі зберігаються зашифрованими за допомогою AES-256-GCM, і бакет можна відключити будь-коли.
Перед початком
Вам потрібні обліковий запис Cloudflare R2 і обліковий запис Nubbo. Кожен підключений бакет враховується в ліміті вашого тарифу: Безкоштовний дозволяє 2, Personal 5, а Pro не має обмежень. Перед першим бакетом Cloudflare попросить активувати підписку R2 на панелі. Якщо ваш бакет має юрисдикцію (EU, FedRAMP або US), ви вибираєте її в майстрі, і Nubbo використовує endpoint цієї юрисдикції.
Виберіть спосіб підключення
Майстер Nubbo пропонує два шляхи. Обидва закінчуються однаково: бакет підключено й готово до завантажень із браузера.
| Автоматично | З обмеженим ключем | |
|---|---|---|
| Ключ | Доступ до всього облікового запису | Обмежений одним бакетом |
| Бакет | Nubbo використає ваш або створить новий | Ви створюєте його заздалегідь |
| CORS | Nubbo додасть правило за вас | Правило додаєте ви |
| Коли вибирати | Найшвидший спосіб | Коли не хочете давати доступ до всього облікового запису |
Обмежений ключ це мінімальний доступ, потрібний Nubbo: Object Read & Write до одного бакета. З ним Nubbo не може показати ваші бакети чи створити новий, тож ви вводите назву бакета й самі додаєте правило CORS.
Автоматичне підключення
Крок 1: створіть ключ у Cloudflare R2
- Увійдіть на dash.cloudflare.com і відкрийте R2 object storage. Панель може показувати меню вашою мовою.
- Відкрийте API Tokens і натисніть Create Account API token. Туди можна потрапити й з Overview, у Account Details, Manage.
- Виберіть дозвіл Admin Read & Write і створіть токен.
- Скопіюйте Access Key ID і Secret Access Key. Cloudflare показує секрет лише один раз. Використовуйте ці два ключі, а не значення токена.
- Також скопіюйте свій Account ID, указаний на сторінці R2 Overview.
Крок 2: підключіть бакет у Nubbo
У Nubbo відкрийте Бакети й натисніть Підключити бакет. Виберіть Cloudflare R2 і натисніть Продовжити.

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

На кроці Ваш ключ вставте Access Key ID, Secret Access Key і Account ID. Nubbo складе endpoint вашого облікового запису з Account ID. Регіон R2 завжди
auto. Перш ніж натиснути Перевірити ключ, виберіть Юрисдикція свого бакета: Типова (без юрисдикції) для більшості бакетів або EU, FedRAMP чи US. Разом із нею змінюється endpoint (https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.comдля ЄС), а список показує лише бакети цієї юрисдикції. Натисніть Перевірити ключ. Nubbo перевірить, що ключ працює і має доступ до всього облікового запису.

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

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

Якщо Nubbo не може додати правило CORS з вашим ключем, майстер переведе вас на крок CORS. Тоді виконайте розділ Додайте правило CORS.
Підключення з обмеженим ключем
Крок 1: підготуйте бакет і ключ у Cloudflare R2
- В R2, Overview натисніть Create bucket і дайте йому назву (малі літери, цифри й дефіси). Регіон вибирати не потрібно. Якщо дані мають залишатися в ЄС, виберіть юрисдикцію EU: разом із нею змінюється endpoint.
- Відкрийте API Tokens і натисніть Create Account API token.
- Виберіть дозвіл Object Read & Write і обмежте його своїм бакетом.
- Скопіюйте Access Key ID, Secret Access Key і свій Account ID.
Крок 2: підключіть бакет у Nubbo
- У розділі Бакети натисніть Підключити бакет, виберіть Cloudflare R2, а потім З обмеженим ключем.
- Вставте Access Key ID, Secret Access Key і Account ID. Перш ніж натиснути Перевірити ключ, виберіть ту саму Юрисдикція, що й у бакета. Натисніть Перевірити ключ.
- Введіть точну назву бакета й натисніть Перевірити доступ.
- Майстер перейде на крок CORS із правилом, яке треба додати.
Додайте правило CORS
Правило CORS дозволяє браузеру завантажувати файли у ваш бакет і з нього на https://nubbo.app. Це те саме правило, яке майстер показує на кроці CORS.
- В R2 відкрийте бакет і перейдіть у Settings.
- У розділі CORS Policy натисніть Add CORS policy і виберіть вкладку JSON.
- Вставте правило й натисніть Save. Cloudflare може знадобитися до 30 секунд, щоб його застосувати.
[
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
"AllowedOrigins": ["https://nubbo.app"],
"ExposeHeaders": ["ETag"],
"MaxAgeSeconds": 3600
}
]

Коли правило збережено, поверніться в Nubbo й натисніть Готово, перевірити. Якщо ваш ключ має право змінювати CORS, кнопка Спробувати налаштувати за мене зробить це за вас.
Якщо щось пішло не так
| Повідомлення в Nubbo | Що робити |
|---|---|
| «Схоже, цей ключ обмежений одним bucket. Можна продовжити обмеженим шляхом або створити ключ із повним доступом.» | Натисніть «Продовжити з обмеженим ключем» або створіть ключ із доступом до всього облікового запису й натисніть «Спробувати інший ключ». |
| «Ваш ключ не має дозволу створювати bucket.» | Використайте ключ із повним доступом або створіть бакет у своїй панелі й натисніть «Він уже створений у моїй панелі». |
| «Ця назва вже використовується в цього провайдера; спробуйте іншу.» | Назви бакетів унікальні в межах провайдера: виберіть іншу. |
| «Ваш ключ не має дозволу на це налаштування.» | Додайте правило CORS вручну, як описано вище. |
| «Ще не працює. Перегляньте правило й перевірте знову; деяким провайдерам потрібна хвилина, щоб його застосувати.» | Переконайтеся, що джерело (origin) саме https://nubbo.app без скісної риски в кінці, зачекайте хвилину й перевірте знову. |
| «Цей bucket вже використовується.» | Цей бакет уже підключено в Nubbo, у вашому чи в іншому обліковому записі. |
| «Недійсні облікові дані. Перевірте ключ доступу та секретний ключ доступу.» | Переконайтеся, що вставили Access Key ID і Secret Access Key токена, а не значення токена API Cloudflare. |
| «Bucket не знайдено. Перевірте назву та регіон.» | Перевірте назву і чи збігається юрисдикція в Nubbo з юрисдикцією бакета (R2 показує її в Settings бакета). |
Скільки це коштує
R2 не бере плату за вихідний трафік і має щомісячний безкоштовний рівень. Ми пояснюємо це в статті Безкоштовний рівень Cloudflare R2.
Поширені запитання
Де знайти свій Account ID у Cloudflare?
На сторінці R2 Overview, у розділі Account Details. Це рядок із 32 символів: цифр і літер від a до f.
Який дозвіл потрібен токену R2?
Мінімальний доступ, потрібний Nubbo, це Object Read & Write, обмежений вашим бакетом, з підключенням через обмежений ключ: ви вводите назву бакета й самі додаєте правило CORS. Автоматичне підключення потребує Admin Read & Write, з яким Nubbo показує ваші бакети, створює новий і налаштовує його CORS.
Який регіон використовувати з R2?
Жодного: R2 використовує регіон auto, і Nubbo встановлює його за вас. Підказки розташування (location hints) Cloudflare не впливають на те, як підключається бакет.
Чи можна підключити бакет R2 з юрисдикцією, наприклад ЄС?
Так. На кроці Ваш ключ виберіть юрисдикцію бакета (EU, FedRAMP або US). Кожна має власний endpoint, наприклад https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com, і показує лише бакети, створені в ній.
Чи коштують завантаження з Nubbo вихідного трафіку в R2?
Ні. R2 не бере плату за вихідний трафік. Проте завантаження рахуються як операції читання.
Джерела
Ціни та ліміти взято з офіційних сторінок нижче. Провайдери їх змінюють, тож перевірте, перш ніж ухвалювати рішення.