Xodera Plugins · Bubble Native
Xodera B2 Files Native
アプリの添付ファイルを自分の Backblaze B2 ストレージに保存します。許可されたユーザーがファイルをアップロード、閲覧、ダウンロードできるようにし、ファイルを公開共有できる場合は明示的に選択させます。
Public beta guides · Haptics instructions are in its Bubble listing
Public beta offer: free Bubble install · 7-day card trial, then US$1.50/month per plugin/project.
ドキュメント確認日:2026年11月6日
実用的な例
開発者自身のプライベートバケットにジョブ添付ファイルを保存する
Bubble Job は、有効期限付きのダウンロード 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` とメタデータを所有 Job レコードに保存します。
`asset_ref`、`size_bytes`、`mime_type`、`upload_status` を使用します。後で、Resolve private read が認可された利用のための一時 URL を提供できます。
`upload_verified` 後にデータベース保存が失敗した場合、別のアップロードではなく同じアセット参照で DB 更新を再試行してください。`upload_pending` の結果を Check or recover upload status と同じアップロード ID で確認します。
計画中です。お客様の B2 アカウントがストレージとダウンロード料金を支払います。
耐久性のあるファイルレコードで所有添付ギャラリーを構築する
ファイルギャラリーは名前、タイプ、ページネーションが必要で、選択したアセットを後で開く方法も必要です。
アプリの File レコードは、検証済みアップロード後に受け入れられた `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`; バケットバインディングとアプリのファイル権限は、要求された操作を許可する必要があります。
現在の可視性を表示し、明示的な確認を求めてから Change public sharing を実行してください。削除の場合は、確認とともに Delete accepted version を呼び出し、確認された結果が判明するまでアプリのメタデータを保持します。
`share_changed` 後、公開共有が明示的に許可された場合にのみ `visibility` と `public_url` を使用してください。`delete_completed` 後、所有 File レコードを更新します。`delete_pending` は最終削除ではありません。
成功を前提にせず、不確かな操作の結果を確認してください。以前に発行されたプロバイダーの読み取り URL は期限切れまで有効な場合があります。DB 行の削除や共有の無効化では、既にダウンロードされたデータは回収できません。
計画中です。お客様の B2 アカウントがストレージとダウンロード料金を支払います。
現在機能しているもの
計画中のプラグインです。まだインストールされておらず、使用できません。以下のガイドは想定されるファイルワークフローを示しています。
ワークフローを構築する
計画中
計画中のワークフローです。現在のベータ版ではまだ利用できません。
これらの例は Lesson、Message、Order などのアプリレコードを使用しています。ご自身のデータ型や要素名に置き換えてください。メディアアドレスの例はご自身のファイルに置き換える必要があります。
計画中: プロジェクト設定で B2 ストレージと許可バケットを選択します。プライバシー、フォルダプレフィックス、受け入れ可能なファイルタイプとサイズを設定してください。
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 アカウントを使用し、このアプリ用のバケットを選択します。読み取りとアップロードが可能なユーザーを決定します。関連する User の yes/no フィールド名を b2_reader_permission_field と b2_writer_permission_field に保存します。デフォルトは b2_files_reader と b2_files_writer です。権限変更は認可された管理者のみが行うべきです。
一度だけ設定する
- BestPlugins → Dashboard → Plugins で Bubble アプリプロジェクトを作成または選択してください。
- このプラグインを選択し、プロジェクトキーをコピーしてください。
- 計画中: Bubble → Plugins → Xodera B2 Files Native を開き、キーを project_api_key に貼り付けて保存します。
- 要素を追加し、アプリデータを選択して、以下のワークフローを構築してください。
- 現在はプライベートベータアクセスのみです。一般公開インストールや有料アクティベーションはまだ利用できません。
インストールとサブスクリプション
For Audio Player, Video Player, Photo Editor, Audio Recorder, Files Kit and Haptics: free Bubble installation, a 7-day trial with a card, then US$1.50 per month per plugin and app project. Development and production are included, with no operation cap. File-size and feature limits still apply. Review billing and cancellation before confirming. Other plugins remain unavailable for purchase.
結果をアプリに保存する
例 Attachment: asset_ref、関連レポート/注文、owner、display_name、mime_type、size_bytes。これらは upload_verified 後に保存します。asset_ref を使用して後でファイルを再開できます。一時的な読み取りアドレスやデバイス上のパスは永続的なファイル参照ではありません。データベースレコードの保存に失敗した場合は、ファイルを再度アップロードするのではなく、そのレコードの保存を再試行してください。
失敗、キャンセル、リカバリー
アップロード結果が不明な場合は upload_id を保持し、Check or recover upload status を使用します。別のコピーを自動的にアップロードしないでください。キャンセルは未完了の転送に影響し、既に保存されたファイルには影響しません。アクセスが期限切れになった場合は、古い一時アドレスを再利用せずにファイルを再度リクエストしてください。
機能と制限
計画中の最大ファイルサイズ: 256 MiB。必要に応じて、バケットの上限をこれより低く設定できます。Backblaze のストレージおよびダウンロード料金はご自身の B2 アカウントに請求されます。パブリックバケット内のファイルは、関連アプリレコードがプライベートであっても公開されます。ウイルススキャンの保証、マルチパートアップロード、ポーズやアプリ終了後の復元はありません。
設定、アクション、結果
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 - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
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 - 表示されるアプリテキストです。空欄の場合は、サポートされている場合に組み込みのローカライズ済みコピーが使用されます。認証情報を含めないでください。
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 - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
Get asset metadata
asset_reftext · デフォルト: —- 例の値
<returned asset_ref> - 例 Bubble 式
Selected B2Asset's asset_ref - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
Resolve private read
asset_reftext · デフォルト: —- 例の値
<returned asset_ref> - 例 Bubble 式
Selected B2Asset's asset_ref - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
Download accepted version
asset_reftext · デフォルト: —- 例の値
<returned asset_ref> - 例 Bubble 式
Selected B2Asset's asset_ref - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
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 - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
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 - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
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 - サービスからの安定した不透明な受け入れ資産ID。選択してもユーザー認可を回避することはありません。
戻り値
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この項目またはアクションの識別子。対応するアプリレコードと共に保持してください。不確かな結果を再試行する際は同じリクエスト識別子を使用します。
upload_status · textこのアクションの現在の結果です。成功を保存する前に、対応する完了イベントを使用してください。
asset_ref · textこの項目またはアクションの識別子。対応するアプリレコードと共に保持してください。不確かな結果を再試行する際は同じリクエスト識別子を使用します。
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この項目またはアクションの識別子。対応するアプリレコードと共に保持してください。不確かな結果を再試行する際は同じリクエスト識別子を使用します。
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このイベントが発生したとき、同じ要素から関連する状態を読み取ります。
開発者が尋ねる質問
一時的な読み取り URL を自分のファイルとして保存できますか?
いいえ。asset_refと正規メタデータを永続化してください。読み取りを再認可します;デバイスのダウンロードパスはBubble Fileではありません。
サブスクリプションはどのように機能しますか?
計画価格: Bubble にプラグインをインストールすることは無料です。BestPlugins へのアクセスは各 Bubble アプリプロジェクトの各プラグインごとに別々のサブスクリプションが必要です: 7 日間は無料、その後 US$1.50 /月です。Development と Live は含まれています。操作回数に固定上限はありませんが、ファイルサイズと機能制限は引き続き適用されます。チェックアウトはまだ開いていません。アクティベーション画面に最初の請求日とキャンセル条件が表示されます。
関連ガイド
Marketplaceリリース保留中
フォーラムガイドは未掲載
サポートが必要な場合は、使用しているプラグインとデバイス、試したアクションと結果をお知らせください。個人データを含まない例を使用してください。キーやプライベートファイルを決して共有しないでください。