Xodera Plugins · Bubble Native
Xodera B2 Files Native
Зберігайте вкладення застосунку у власному Backblaze B2. Дозволені користувачі можуть завантажувати, переглядати й отримувати файли, а публічне поширення вмикається лише за окремим рішенням.
Посібники публічних бета-версій · інструкції Haptics у його картці Bubble
Умови публічної бета-версії: Bubble безкоштовно · 7 днів з карткою, потім 1,50 USD/місяць за плагін у проєкті.
Документація переглянута 6 листопада 2026
Практичні сценарії
Приватне вкладення до роботи
Завдання Bubble потребує надійного посилання на сховище, не розглядаючи URL-адресу з обмеженим терміном дії як ідентифікатор файлу.
`bucket_binding_id = an allowed binding to your own private bucket`; динамічні `local_uri`, `display_name`, `mime_type` та `expected_size` описують вибраний локальний файл.
Заплановано: Check local source → Upload file → чекати на `upload_verified`. Ваш робочий процес потім зберігає `asset_ref` та метадані у власному записі завдання.
Використовуйте `asset_ref`, `size_bytes`, `mime_type` і `upload_status`. Пізніше Resolve private read може надати тимчасову URL‑адресу для авторизованого використання.
Якщо збереження в базі даних не вдається після `upload_verified`, повторіть оновлення БД з тим же посиланням на ресурс, а не іншим завантаженням. Перевірте результат `upload_pending` за допомогою Check or recover upload status та того самого ідентифікатора завантаження.
Заплановано. Зберігання й завантаження оплачує ваш акаунт B2.
Галерея постійних посилань на assets
Галерея файлів потребує назв, типів і пагінації, а також способу відкриття вибраного ресурсу пізніше.
Запис файлу вашого застосунку зберігає прийнятий `asset_ref`, відображувану назву, MIME та відношення власник/робота після підтвердженого завантаження; не використовуйте локальний URI як його хмарну ідентичність.
Заплановано: використати List my B2 files для створення списку вкладень. asset_refs ідентифікує файли; значення з тим же індексом надають їх назви та типи. Вибір файлу передає його asset_ref до Get asset metadata або Download accepted version.
`has_more` і `next_cursor` належать до поточного запиту. Завершене завантаження повертає `local_output_uri`; це локальна копія пристрою, а не постійне публічне посилання.
Скиньте пагінацію після змін прив’язки/облікового запису/запиту. При `transfer_error` збережіть існуючий File Thing і покажіть `error_code`; не замінюйте його без повідомлення іншою версією провайдера.
Заплановано. Зберігання й завантаження оплачує ваш акаунт B2.
Явне оприлюднення/видалення
Персонал не повинен випадково розкривати приватне вкладення або видаляти всі версії під час заміни зображення.
`asset_ref = the selected accepted version`; прив’язка bucket і дозволи файлів додатку повинні дозволяти запитувану операцію.
Покажіть поточну видимість, запросіть явне підтвердження, потім Change public sharing. Для видалення викличте Delete accepted version з підтвердженням; зберігайте метадані застосунку, доки не буде відомий підтверджений результат.
Після `share_changed` використовуйте `visibility` і `public_url` лише коли публічне поширення було явно дозволено. Після `delete_completed` оновіть запис власного файлу; `delete_pending` не є остаточним видаленням.
Перевірте результат невизначеної операції замість припущення успіху. Раніше видані URL‑адреси читання провайдера можуть залишатися дійсними до закінчення терміну; видалення рядка БД або вимкнення поширення не повертає вже завантажені байти.
Заплановано. Зберігання й завантаження оплачує ваш акаунт B2.
Що працює зараз
Запланований плагін. Він ще не встановлений і не доступний для використання. Нижче описано майбутній процес роботи з файлами.
Побудуйте бізнес-процес
Заплановано
Запланований процес. Ще не доступний у поточній бета-версії.
У прикладах є записи Lesson, Message та Order. Замініть їх на власні типи даних і назви елементів. Замість адрес із прикладів підставте власні файли.
Заплановано: у налаштуваннях проєкту оберіть своє сховище B2 й дозволений bucket. Задайте приватність, префікс папки, дозволені типи та розміри файлів.
List B2 bindings показує дозволені сховища. List my B2 files показує файли поточного користувача, а Get my B2 file info — подробиці.
Оберіть файл. Укажіть bucket_binding_id, local_uri, display_name, mime_type й expected_size та виконайте Upload file. Показуйте прогрес, але вважайте файл збереженим лише після upload_verified.
Збережіть asset_ref у своєму записі. Використовуйте його для Get asset metadata, Resolve private read або Download accepted version. Для Change public sharing та Delete accepted version потрібне окреме підтвердження.
Налаштуйте один раз
Активація ключем для цього плагіна запланована. Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins. Оберіть Xodera B2 Files Native, скопіюйте його ключ, відкрийте Bubble → Plugins → Xodera B2 Files Native і вставте ключ у project_api_key. Збережіть один раз, далі використовуйте дії нижче. Для кожного плагіна в кожному проєкті є окремий ключ.
Використовуйте власний акаунт Backblaze B2 й оберіть bucket цього застосунку. Визначте, хто може читати й завантажувати файли. У b2_reader_permission_field та b2_writer_permission_field вкажіть назви відповідних полів User типу yes/no; типові назви — b2_files_reader і b2_files_writer. Змінювати ці дозволи може лише уповноважений адміністратор.
Налаштуйте один раз
- Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins.
- Оберіть цей плагін і скопіюйте ключ його проєкту.
- Заплановано: Відкрийте Bubble → Plugins → Xodera B2 Files Native; вставте ключ у project_api_key і збережіть.
- Додайте елемент, оберіть дані свого застосунку та побудуйте workflow нижче.
- Наразі лише приватна бета. Публічне встановлення та платна активація ще не відкриті.
Встановлення та підписка
Для Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit та Haptics: безкоштовне встановлення в Bubble, 7 днів пробного доступу з карткою, потім 1,50 USD на місяць за плагін у проєкті. Розробку й робочу версію включено, без ліміту операцій. Обмеження файлів і можливостей залишаються. Перед підтвердженням перевірте оплату й скасування. Інші плагіни недоступні для покупки.
Як записати результат у свою базу
Приклад Attachment: asset_ref, відповідний звіт чи замовлення, owner, display_name, mime_type та size_bytes. Записуйте після upload_verified. Для повторного відкриття потрібен asset_ref; тимчасова адреса читання або шлях одного пристрою не є постійним посиланням на файл. Якщо запис у базу не вдався, повторіть його збереження, а не завантаження файлу.
Помилки, скасування та відновлення
Якщо результат завантаження невідомий, збережіть upload_id і використайте Check or recover upload status. Не завантажуйте другу копію автоматично. Cancel стосується незавершеного передавання, а не вже збереженого файлу. Якщо доступ закінчився, отримайте файл знову замість старої тимчасової адреси.
Можливості й обмеження
Запланований максимум файлу: 256 MiB або менший обраний ліміт bucket. Зберігання й завантаження оплачуються у вашому акаунті B2. Файл у публічному bucket є публічним, навіть якщо запис у застосунку приватний. Немає обіцянки перевірки на віруси, multipart-завантаження, паузи чи відновлення після завершення застосунку.
Налаштування, дії та результати
Використовуйте ці назви в Bubble. Плановані функції позначені окремо.
Доступні бета‑налаштування
Налаштування елемента
bucket_binding_id · textlocal_uri · textdisplay_name · textmime_type · textexpected_size · numbermetadata_json · textasset_ref · textis_active · yes_nodisabled · yes_nolanguage · textui_text_json · texttitle · textshow_preview · yes_noshow_provider_browse · yes_noСтани
status · textis_busy · yes_noupload_id · textupload_status · textasset_ref · textdisplay_name · textmime_type · textsize_bytes · numberbytes_sent · numberprogress · numberprogress_indeterminate · yes_notemporary_read_url · textread_expires_at · textlocal_output_uri · textpublic_url · textvisibility · textnext_cursor · texthas_more · yes_noquery_revision · textfiles_json · textbuckets_json · textremote_files_json · textremote_next_cursor · textremote_has_more · yes_noremote_query_revision · textbucket_binding_id · textcleanup_pending · yes_noerror_code · texterror_message · textПодії
file_selectedupload_startedupload_transport_completedupload_verifiedupload_pendingbuckets_loadedbucket_selectedlist_loadedmetadata_loadedread_resolveddownload_completedshare_changeddelete_completeddelete_pendingbrowse_loadedtransfer_cancelledcleanup_pendingtransfer_errorsession_clearedДії та їхні параметри
List allowed bucketsSelect bucket bindingCheck local sourceUpload fileCheck or recover upload statusCancel owned transferClear local sessionList application filesRefresh application filesLoad more application filesSelect asset referenceGet asset metadataResolve private readDownload accepted versionBrowse provider filesChange public sharingDelete accepted versionНалаштування елемента · 14
Запланований процес. Ще не доступний у поточній бета-версії.
bucket_binding_idtext · Типове значення: ""- Приклад значення
<binding returned by List B2 bindings> - Приклад виразу Bubble
Selected Binding's binding_id - Сховище з результату List B2 bindings. Використовуйте його ID для цього файлу.
local_uritext · Типове значення: ""- Приклад значення
file:///app-cache/attachment.jpg - Приклад виразу Bubble
Offline Files' local_uri - Доступне розташування файлу на цьому пристрої. Це не посилання для завантаження з інтернету.
display_nametext · Типове значення: ""- Приклад значення
report-photo.jpg - Приклад виразу Bubble
Selected Attachment's display_name - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
mime_typetext · Типове значення: ""- Приклад значення
image/jpeg - Приклад виразу Bubble
Photo Editor's output_mime - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
expected_sizenumber · Типове значення: 0- Приклад значення
246975 - Приклад виразу Bubble
Offline Files' size_bytes - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
metadata_jsontext · Типове значення: ""- Приклад значення
{"label":"field-report"} - Приклад виразу Bubble
Selected Attachment's safe_metadata_json - Необов’язковий JSON з даними застосунку, наприклад назвою звіту. Залишайте його невеликим і без персональних даних.
asset_reftext · Типове значення: ""- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
is_activeyes_no · Типове значення: true- Приклад значення
yes - Приклад виразу Bubble
GuideHost's view_is_active (your yes/no custom state) - yes, доки ця сторінка відкрита; no під час виходу, щоб зупинити відтворення чи поточну дію.
disabledyes_no · Типове значення: false- Приклад значення
no - Приклад виразу Bubble
GuideHost's is_busy (your yes/no custom state) - Вимкніть елемент, коли застосунок зайнятий або дія недоступна.
languagetext · Типове значення: "auto"- Приклад значення
uk - Приклад виразу Bubble
Current User's preferred_language - Укажіть language=auto, щоб автоматично використати підтримувану мову пристрою або браузера. Щоб обрати мову явно, укажіть підтримуваний код мови.
ui_text_jsontext · Типове значення: ""- Приклад значення
{} - Приклад виразу Bubble
App Settings' player_labels_json (supported keys only) - Необов’язковий JSON із підтримуваними підписами кнопок. Залиште порожнім для вбудованих текстів.
titletext · Типове значення: ""- Приклад значення
Lesson 4 — review - Приклад виразу Bubble
Selected Lesson's name - Видимий текст app; порожнє значення використовує вбудований переклад, де підтримано. Без секретів.
show_previewyes_no · Типове значення: false- Приклад значення
yes - Приклад виразу Bubble
App Settings' b2_preview - Показати або приховати перегляд файлу.
show_provider_browseyes_no · Типове значення: false- Приклад значення
no - Приклад виразу Bubble
Current User's authorized_browse_UI (presentation only) - Показати або приховати перегляд сховища для користувачів із дозволом.
Дії та їхні параметри · 20
Запланований процес. Ще не доступний у поточній бета-версії.
List allowed buckets
Немає параметрів дії
Select bucket binding
binding_idtext · Типове значення: —- Приклад значення
<returned allowed binding ID> - Приклад виразу Bubble
Selected Binding's binding_id - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Check local source
Немає параметрів дії
Upload file
acknowledge_public_bytesyes_no · Типове значення: —- Приклад значення
no - Приклад виразу Bubble
Public bucket disclosure Checkbox is checked (private bucket: no) - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
confirm_retryyes_no · Типове значення: —- Приклад значення
no - Приклад виразу Bubble
Retry Checkbox is checked after confirmed clean pending status - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Check or recover upload status
upload_idtext · Типове значення: —- Приклад значення
<original returned upload_id> - Приклад виразу Bubble
Current UploadIntent's upload_id - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Cancel owned transfer
Немає параметрів дії
Clear local session
Немає параметрів дії
List application files
Немає параметрів дії
Refresh application files
Немає параметрів дії
Load more application files
Немає параметрів дії
Select asset reference
asset_reftext · Типове значення: —- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Get asset metadata
asset_reftext · Типове значення: —- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Resolve private read
asset_reftext · Типове значення: —- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Download accepted version
asset_reftext · Типове значення: —- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Browse provider files
prefixtext · Типове значення: —- Приклад значення
"" - Приклад виразу Bubble
Authorized Browse Settings' prefix - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
load_moreyes_no · Типове значення: —- Приклад значення
no - Приклад виразу Bubble
Load More button only, for unchanged query - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Change public sharing
asset_reftext · Типове значення: —- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
enabledyes_no · Типове значення: —- Приклад значення
no - Приклад виразу Bubble
Public Share Checkbox is checked after separate confirmation - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
confirmyes_no · Типове значення: —- Приклад значення
yes — explicit confirmation only - Приклад виразу Bubble
Confirm Checkbox is checked - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Delete accepted version
asset_reftext · Типове значення: —- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
confirmyes_no · Типове значення: —- Приклад значення
yes — explicit confirmation only - Приклад виразу Bubble
Confirm Checkbox is checked - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
List B2 bindings
environmenttext · Типове значення: —- Приклад значення
development - Приклад виразу Bubble
App Settings' selected_environment - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Повернення
ok · yes/nostatus · texterror_code · textbinding_ids · text listlabels · text listprivacy · text listmax_size_bytes · number listList my B2 files
environmenttext · Типове значення: —- Приклад значення
development - Приклад виразу Bubble
App Settings' selected_environment - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
binding_idtext · Типове значення: —- Приклад значення
<returned allowed binding ID> - Приклад виразу Bubble
Selected Binding's binding_id - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
limitnumber · Типове значення: —- Приклад значення
50 - Приклад виразу Bubble
Gallery Settings' page_size - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
cursortext · Типове значення: —- Приклад значення
"" - Приклад виразу Bubble
Previous List my B2 files result's next_cursor; empty on first page - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Повернення
ok · yes/nostatus · texterror_code · textasset_refs · text listdisplay_names · text listmime_types · text listsize_bytes · number listcreated_ats · text listvisibility · text listpublic_urls · text listprovider_status · text listinspection_status · text listmetadata_labels · text listhas_more · yes/nonext_cursor · textquery_revision · textGet my B2 file info
environmenttext · Типове значення: —- Приклад значення
development - Приклад виразу Bubble
App Settings' selected_environment - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
binding_idtext · Типове значення: —- Приклад значення
<returned allowed binding ID> - Приклад виразу Bubble
Selected Binding's binding_id - Візьміть значення поточного бізнес-запису й перевірте межі нижче.
asset_reftext · Типове значення: —- Приклад значення
<returned asset_ref> - Приклад виразу Bubble
Selected B2Asset's asset_ref - Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Повернення
ok · yes/nostatus · texterror_code · textasset_ref · textdisplay_name · textmime_type · textsize_bytes · numbercreated_at · textvisibility · textpublic_url · textprovider_status · textinspection_status · textmetadata_label · textСтани та події
Запланований процес. Ще не доступний у поточній бета-версії.
Стани
status · textПоточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.
is_busy · yes_noДія ще триває. Дочекайтеся завершення перед іншою дією.
upload_id · textІдентифікатор цього елемента або дії. Зберігайте його разом із відповідним записом. Для повтору з невідомим результатом використовуйте той самий ID запиту.
upload_status · textПоточний результат дії. Перед записом успіху дочекайтеся відповідної події завершення.
asset_ref · textІдентифікатор цього елемента або дії. Зберігайте його разом із відповідним записом. Для повтору з невідомим результатом використовуйте той самий ID запиту.
display_name · textПоточне значення вибраного елемента. Читайте його після відповідної події.
mime_type · textПоточне значення вибраного елемента. Читайте його після відповідної події.
size_bytes · numberПоточне значення вибраного елемента. Читайте його після відповідної події.
bytes_sent · numberПоточне значення вибраного елемента. Читайте його після відповідної події.
progress · numberПоточне значення вибраного елемента. Читайте його після відповідної події.
progress_indeterminate · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
temporary_read_url · textПоточне значення вибраного елемента. Читайте його після відповідної події.
read_expires_at · textПоточне значення вибраного елемента. Читайте його після відповідної події.
local_output_uri · textРозташування файлу на цьому пристрої. Збережіть або завантажте його окремо, якщо він потрібен в інтернеті.
public_url · textПоточне значення вибраного елемента. Читайте його після відповідної події.
visibility · textПоточне значення вибраного елемента. Читайте його після відповідної події.
next_cursor · textПоточне значення вибраного елемента. Читайте його після відповідної події.
has_more · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
query_revision · textПоточне значення вибраного елемента. Читайте його після відповідної події.
files_json · textПоточне значення вибраного елемента. Читайте його після відповідної події.
buckets_json · textПоточне значення вибраного елемента. Читайте його після відповідної події.
remote_files_json · textПоточне значення вибраного елемента. Читайте його після відповідної події.
remote_next_cursor · textПоточне значення вибраного елемента. Читайте його після відповідної події.
remote_has_more · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
remote_query_revision · textПоточне значення вибраного елемента. Читайте його після відповідної події.
bucket_binding_id · textІдентифікатор цього елемента або дії. Зберігайте його разом із відповідним записом. Для повтору з невідомим результатом використовуйте той самий ID запиту.
cleanup_pending · yes_noПоточне значення вибраного елемента. Читайте його після відповідної події.
error_code · textПомилка останньої дії. Покажіть зрозуміле повідомлення й запропонуйте відповідний повтор.
error_message · textПомилка останньої дії. Покажіть зрозуміле повідомлення й запропонуйте відповідний повтор.
Події
file_selectedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
upload_startedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
upload_transport_completedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
upload_verifiedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
upload_pendingКоли стається ця подія, прочитайте відповідні стани того самого елемента.
buckets_loadedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
bucket_selectedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
list_loadedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
metadata_loadedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
read_resolvedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
download_completedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
share_changedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
delete_completedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
delete_pendingКоли стається ця подія, прочитайте відповідні стани того самого елемента.
browse_loadedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
transfer_cancelledКоли стається ця подія, прочитайте відповідні стани того самого елемента.
cleanup_pendingКоли стається ця подія, прочитайте відповідні стани того самого елемента.
transfer_errorКоли стається ця подія, прочитайте відповідні стани того самого елемента.
session_clearedКоли стається ця подія, прочитайте відповідні стани того самого елемента.
Відповіді для розробника
Зберігати temporary URL як файл?
Ні. Зберігайте asset_ref і канонічні metadata; read авторизуйте знову. Локальний download path не є Bubble File.
Як працює підписка?
Заплановане ціноутворення: встановлення плагіна в Bubble безкоштовне. Доступ до BestPlugins — окрема підписка для кожного плагіна в кожному проекті додатку Bubble: 7 днів безкоштовно, потім US$1.50 на місяць. Development і Live включені. Фіксованого обмеження кількості операцій немає; обмеження розміру файлу та функцій залишаються діючими. Оформлення ще не відкрито. На екрані активації буде показана дата першого платежу та умови скасування.
Пов’язані інструкції
Marketplace випуск у черзі
Посібник форуму не опубліковано
Для допомоги вкажіть плагін, пристрій, дію та результат. Використовуйте приклад без персональних даних. Не надсилайте ключ або приватні файли.