← Усі оригінальні посібники

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. Замініть їх на власні типи даних і назви елементів. Замість адрес із прикладів підставте власні файли.

  1. Заплановано: у налаштуваннях проєкту оберіть своє сховище B2 й дозволений bucket. Задайте приватність, префікс папки, дозволені типи та розміри файлів.

  2. List B2 bindings показує дозволені сховища. List my B2 files показує файли поточного користувача, а Get my B2 file info — подробиці.

  3. Оберіть файл. Укажіть bucket_binding_id, local_uri, display_name, mime_type й expected_size та виконайте Upload file. Показуйте прогрес, але вважайте файл збереженим лише після upload_verified.

  4. Збережіть asset_ref у своєму записі. Використовуйте його для Get asset metadata, Resolve private read або Download accepted version. Для Change public sharing та Delete accepted version потрібне окреме підтвердження.

Діаграма робочого процесу — не скріншот додатку · SVG

Налаштуйте один раз

Активація ключем для цього плагіна запланована. Створіть або оберіть проєкт 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. Змінювати ці дозволи може лише уповноважений адміністратор.

Налаштуйте один раз
  1. Створіть або оберіть проєкт Bubble у BestPlugins → Dashboard → Plugins.
  2. Оберіть цей плагін і скопіюйте ключ його проєкту.
  3. Заплановано: Відкрийте Bubble → Plugins → Xodera B2 Files Native; вставте ключ у project_api_key і збережіть.
  4. Додайте елемент, оберіть дані свого застосунку та побудуйте workflow нижче.
  5. Наразі лише приватна бета. Публічне встановлення та платна активація ще не відкриті.
Встановлення та підписка

Для 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>
Приклад виразу BubbleSelected Binding's binding_id
Сховище з результату List B2 bindings. Використовуйте його ID для цього файлу.
local_uritext · Типове значення: ""
Приклад значенняfile:///app-cache/attachment.jpg
Приклад виразу BubbleOffline Files' local_uri
Доступне розташування файлу на цьому пристрої. Це не посилання для завантаження з інтернету.
display_nametext · Типове значення: ""
Приклад значенняreport-photo.jpg
Приклад виразу BubbleSelected Attachment's display_name
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
mime_typetext · Типове значення: ""
Приклад значенняimage/jpeg
Приклад виразу BubblePhoto Editor's output_mime
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
expected_sizenumber · Типове значення: 0
Приклад значення246975
Приклад виразу BubbleOffline Files' size_bytes
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
metadata_jsontext · Типове значення: ""
Приклад значення{"label":"field-report"}
Приклад виразу BubbleSelected Attachment's safe_metadata_json
Необов’язковий JSON з даними застосунку, наприклад назвою звіту. Залишайте його невеликим і без персональних даних.
asset_reftext · Типове значення: ""
Приклад значення<returned asset_ref>
Приклад виразу BubbleSelected B2Asset's asset_ref
Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
is_activeyes_no · Типове значення: true
Приклад значенняyes
Приклад виразу BubbleGuideHost's view_is_active (your yes/no custom state)
yes, доки ця сторінка відкрита; no під час виходу, щоб зупинити відтворення чи поточну дію.
disabledyes_no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleGuideHost's is_busy (your yes/no custom state)
Вимкніть елемент, коли застосунок зайнятий або дія недоступна.
languagetext · Типове значення: "auto"
Приклад значенняuk
Приклад виразу BubbleCurrent User's preferred_language
Укажіть language=auto, щоб автоматично використати підтримувану мову пристрою або браузера. Щоб обрати мову явно, укажіть підтримуваний код мови.
ui_text_jsontext · Типове значення: ""
Приклад значення{}
Приклад виразу BubbleApp Settings' player_labels_json (supported keys only)
Необов’язковий JSON із підтримуваними підписами кнопок. Залиште порожнім для вбудованих текстів.
titletext · Типове значення: ""
Приклад значенняLesson 4 — review
Приклад виразу BubbleSelected Lesson's name
Видимий текст app; порожнє значення використовує вбудований переклад, де підтримано. Без секретів.
show_previewyes_no · Типове значення: false
Приклад значенняyes
Приклад виразу BubbleApp Settings' b2_preview
Показати або приховати перегляд файлу.
show_provider_browseyes_no · Типове значення: false
Приклад значенняno
Приклад виразу BubbleCurrent User's authorized_browse_UI (presentation only)
Показати або приховати перегляд сховища для користувачів із дозволом.
Дії та їхні параметри · 20

Запланований процес. Ще не доступний у поточній бета-версії.

List allowed buckets

Немає параметрів дії

Select bucket binding
binding_idtext · Типове значення: —
Приклад значення<returned allowed binding ID>
Приклад виразу BubbleSelected Binding's binding_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Check local source

Немає параметрів дії

Upload file
acknowledge_public_bytesyes_no · Типове значення: —
Приклад значенняno
Приклад виразу BubblePublic bucket disclosure Checkbox is checked (private bucket: no)
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
confirm_retryyes_no · Типове значення: —
Приклад значенняno
Приклад виразу BubbleRetry Checkbox is checked after confirmed clean pending status
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Check or recover upload status
upload_idtext · Типове значення: —
Приклад значення<original returned upload_id>
Приклад виразу BubbleCurrent 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>
Приклад виразу BubbleSelected B2Asset's asset_ref
Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Get asset metadata
asset_reftext · Типове значення: —
Приклад значення<returned asset_ref>
Приклад виразу BubbleSelected B2Asset's asset_ref
Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Resolve private read
asset_reftext · Типове значення: —
Приклад значення<returned asset_ref>
Приклад виразу BubbleSelected B2Asset's asset_ref
Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Download accepted version
asset_reftext · Типове значення: —
Приклад значення<returned asset_ref>
Приклад виразу BubbleSelected B2Asset's asset_ref
Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
Browse provider files
prefixtext · Типове значення: —
Приклад значення""
Приклад виразу BubbleAuthorized Browse Settings' prefix
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
load_moreyes_no · Типове значення: —
Приклад значенняno
Приклад виразу BubbleLoad More button only, for unchanged query
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Change public sharing
asset_reftext · Типове значення: —
Приклад значення<returned asset_ref>
Приклад виразу BubbleSelected B2Asset's asset_ref
Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
enabledyes_no · Типове значення: —
Приклад значенняno
Приклад виразу BubblePublic Share Checkbox is checked after separate confirmation
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
confirmyes_no · Типове значення: —
Приклад значенняyes — explicit confirmation only
Приклад виразу BubbleConfirm Checkbox is checked
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
Delete accepted version
asset_reftext · Типове значення: —
Приклад значення<returned asset_ref>
Приклад виразу BubbleSelected B2Asset's asset_ref
Сталий opaque ID прийнятого asset від сервісу. Вибір не обходить перевірку прав.
confirmyes_no · Типове значення: —
Приклад значенняyes — explicit confirmation only
Приклад виразу BubbleConfirm Checkbox is checked
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
List B2 bindings
environmenttext · Типове значення: —
Приклад значенняdevelopment
Приклад виразу BubbleApp Settings' selected_environment
Візьміть значення поточного бізнес-запису й перевірте межі нижче.

Повернення

ok · yes/nostatus · texterror_code · textbinding_ids · text listlabels · text listprivacy · text listmax_size_bytes · number list
List my B2 files
environmenttext · Типове значення: —
Приклад значенняdevelopment
Приклад виразу BubbleApp Settings' selected_environment
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
binding_idtext · Типове значення: —
Приклад значення<returned allowed binding ID>
Приклад виразу BubbleSelected Binding's binding_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
limitnumber · Типове значення: —
Приклад значення50
Приклад виразу BubbleGallery Settings' page_size
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
cursortext · Типове значення: —
Приклад значення""
Приклад виразу BubblePrevious 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 · text
Get my B2 file info
environmenttext · Типове значення: —
Приклад значенняdevelopment
Приклад виразу BubbleApp Settings' selected_environment
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
binding_idtext · Типове значення: —
Приклад значення<returned allowed binding ID>
Приклад виразу BubbleSelected Binding's binding_id
Візьміть значення поточного бізнес-запису й перевірте межі нижче.
asset_reftext · Типове значення: —
Приклад значення<returned asset_ref>
Приклад виразу BubbleSelected 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 випуск у черзі

Посібник форуму не опубліковано

Для допомоги вкажіть плагін, пристрій, дію та результат. Використовуйте приклад без персональних даних. Не надсилайте ключ або приватні файли.