ガイド

Backblaze B2のファイルマネージャー: Nubboに接続する

Backblaze B2バケットをNubboに接続する方法。アプリケーションキー、リージョン、ウィザードの各手順、B2 CLIでのCORS設定、失敗したときの対処法を説明します。

NubboはS3互換APIを通じて、アプリケーションキーとアカウントのリージョンでBackblaze B2に接続します。数分でバケットがファイルエクスプローラーに表示され、直接アップロード、共有リンク、ギャラリーを使えるようになります。このガイドでは、自動接続と1つのバケットに限定したキーでの接続という2つの方法について、Nubboのウィザードを順を追って説明します。

できること

  • バケットをドライブのように閲覧: フォルダ、表示切り替え、検索、ゴミ箱、ラベル、お気に入り。
  • ブラウザとBackblaze B2の間でファイルを直接アップロード、ダウンロード。ファイルがNubboのサーバーを経由することはありません。
  • パスワード、有効期限、ダウンロード回数制限付きでファイルやフォルダを共有し、バケットにファイルを受け取り、ギャラリーを作成。
  • キーはAES-256-GCMで暗号化して保存され、いつでもバケットの接続を解除できます。

始める前に

Backblaze B2のアカウントとNubboのアカウントが必要です。接続する各バケットがプランの上限にカウントされます: 無料プランは2つ、Personalは5つまでで、Proは無制限です。B2ではリージョンはアカウント作成時に決まり、そのすべてのバケットに適用されます。リージョンは任意のバケットのエンドポイント(s3.<region>.backblazeb2.com の形式)で確認でき、それがNubboで選ぶリージョンです。アカウントのマスターキーはS3 APIでは使えないため、必ずアプリケーションキーを作成してください。

接続方法を選ぶ

Nubboのウィザードには2つの方法があります。どちらも最後は同じで、バケットが接続され、ブラウザからアップロードできる状態になります。

自動限定キーで接続
キーアカウント全体にアクセス1つのバケットに限定
バケットNubboが既存のバケットを使うか新規作成する先にご自身で作成する
CORSNubboがルールを追加するご自身でルールを追加する
選ぶべき場合いちばん早い方法アカウント全体へのアクセスを許可したくない場合

自動接続

ステップ1: Backblaze B2でキーを作成する

  1. backblaze.comで B2 Cloud Storage、Application Keys を開き、Add a New Application Key を押します。マスターアプリケーションキーは使わないでください。
  2. 名前を付け、Allow Access to Bucket(s) を All に、Type of Access を Read and Write に設定します。Create New Key を押します。
  3. keyID(アクセスキー)と applicationKey(シークレット)をコピーします。BackblazeがapplicationKeyを表示するのは一度だけです。
  4. Buckets で任意のバケットのエンドポイントを見て、リージョンを確認します。

ステップ2: Nubboでバケットを接続する

  1. Nubboで バケット を開き、バケットを接続 を押します。Backblaze B2 を選んで 続行 を押します。

    Backblaze B2を選択したNubboウィザードのプロバイダーのステップ Backblaze B2を選択したNubboウィザードのプロバイダーのステップ
  2. 自動 を選んで 続行 を押します。

    自動と限定キーで接続の選択肢がある接続方法のステップ 自動と限定キーで接続の選択肢がある接続方法のステップ
  3. キー のステップでkeyIDとapplicationKeyを貼り付け、アカウントのリージョンを選びます。キーを確認 を押します。Nubboはキーが有効で、アカウント全体にアクセスできることを確認します。

    クイックガイドとキーの入力欄があるBackblaze B2のキーのステップ クイックガイドとキーの入力欄があるBackblaze B2のキーのステップ
  4. バケットを1つ選んで このバケットを使用 を押すか、新規作成 を選んで名前を入力し(求められた場合はリージョンも選び)、作成して準備 を押します。Nubboはアプリからのアップロードとダウンロードだけを許可するCORSルールをバケットに追加し、既存のルールはそのまま残します。

    バケットの一覧と新規作成の選択肢があるバケットのステップ バケットの一覧と新規作成の選択肢があるバケットのステップ
  5. 3つのチェックを確認し、必要なら Nubboでの名前 を変更して 完了 を押します。バケットが バケット ページに表示され、エクスプローラーで開けるようになります。

    接続、バケット、CORSのチェックが表示された完了のステップ 接続、バケット、CORSのチェックが表示された完了のステップ

続いて、バケットで Lifecycle Settings を開き、Keep only the last version of the file を選びます。そうしないとB2はすべてのバージョンを保持し、Nubboから削除しても容量が空きません。

お使いのキーでNubboがCORSルールを追加できない場合、ウィザードは CORS のステップに進みます。その場合は CORSルールの追加 の手順に従ってください。

限定キーでの接続

ステップ1: Backblaze B2でバケットとキーを準備する

  1. Buckets で Create a Bucket を押し、名前を付けて Private のままにします。
  2. バケットで Lifecycle Settings を開き、Keep only the last version of the file を選びます。
  3. バケットのエンドポイントを見て、リージョンを確認します。
  4. Application Keys で Add a New Application Key を押し、Read and Write でアクセスをバケットに限定し、Allow List All Bucket Names にチェックを入れます。Create New Key を押します。
  5. keyIDとapplicationKeyをコピーします。

ステップ2: Nubboでバケットを接続する

  1. バケット ページで バケットを接続 を押し、Backblaze B2 を選んでから 限定キーで接続 を選びます。
  2. keyIDとapplicationKeyを貼り付け、リージョンを選びます。キーを確認 を押します。
  3. バケット名を正確に入力し、アクセスを確認 を押します。
  4. ウィザードが CORS のステップに進み、追加すべきルールが表示されます。

CORSルールの追加

CORSルールにより、https://nubbo.app のブラウザからバケットのファイルをアップロード、ダウンロードできるようになります。ウィザードの CORS のステップに表示されるルールと同じものです。

B2コンソールのCORSルールはプリセットで操作を選べないため、Nubboのルールは、バケットの設定を変更できるキーを使ってB2のコマンドラインツール(b2)で追加します。

  1. CLIをインストールします。たとえば pip install b2 を使います。
  2. keyIDとapplicationKeyでサインインします: b2 account authorize。
  3. your-bucket をバケット名に置き換えてルールを適用します。allPrivate でバケットは非公開のままになります。
b2 bucket update --cors-rules '[{"corsRuleName":"nubbo","allowedOrigins":["https://nubbo.app"],"allowedOperations":["s3_get","s3_head","s3_put","s3_post","s3_delete"],"allowedHeaders":["*"],"exposeHeaders":["etag"],"maxAgeSeconds":3600}]' your-bucket allPrivate
バケットに追加するルールが表示されたCORSのステップ バケットに追加するルールが表示されたCORSのステップ

適用したらNubboに戻り、追加したので確認 を押します。お使いのキーにCORSを変更する権限があれば、自動で設定を試す で自動的に設定できます。

うまくいかないとき

Nubboのメッセージ対処法
「このキーは1つのバケットに限定されているようです。限定キーの手順で続行するか、フルアクセスのキーを作成してください。」限定キーで続行を押すか、アカウント全体にアクセスできるキーを作成して別のキーを試すを押してください。
「バケットが見つかりません。名前とリージョンを確認してください。」バケット名が正確か、選んだリージョンがバケットのリージョンと同じか確認してください。
「このキーにはバケットを作成する権限がありません。」フルアクセスのキーを使うか、管理画面でバケットを作成して管理画面で作成しましたを押してください。
「この名前はこのプロバイダーですでに使用されています。別の名前をお試しください。」バケット名はプロバイダー全体で一意です。別の名前を選んでください。
「このキーには設定する権限がありません。」上記の説明に沿って、CORSルールを手動で追加してください。
「まだ動作していません。ルールを見直して再度確認してください。プロバイダーによっては反映まで1分ほどかかります。」オリジンが末尾のスラッシュなしで正確に https://nubbo.app になっているか確認し、1分待ってから再度確認してください。
「このバケットはすでに使用されています。」そのバケットは、ご自身または別のアカウントですでにNubboに接続されています。
「認証情報が無効です。アクセスキーとシークレットアクセスキーを確認してください。」S3 APIでは使えないマスターアプリケーションキーを使っていないか確認してください。
「バケットは別のリージョンにあります。設定されているリージョンを確認してください。」バケットのエンドポイントに表示されているリージョンをNubboで選んでください。

料金

Backblaze B2はTB単位の料金で、10 GBまで無料、保存量の3倍までのデータ送信は無料です。詳しくは Backblaze B2の料金 で説明しています。

よくある質問

Backblazeのマスターアプリケーションキーは使えますか?

いいえ。BackblazeのS3互換APIはマスターキーに対応していません。Application Keysでアプリケーションキーを作成してください。

B2ではNubboでどのリージョンを選べばよいですか?

バケットのエンドポイントにあるリージョンです。エンドポイントはs3.<region>.backblazeb2.comの形式です。B2では、アカウントのすべてのバケットが同じリージョンにあります。

CORSをB2 CLIで設定するのはなぜですか?

コンソールのルールはプリセットで、Nubboに必要な操作を選べないからです。正確なルールを適用するにはCLIがいちばん簡単です。B2のエンドポイントに対してPutBucketCorsを実行できるS3ツールであれば何でも使えます。

Nubboで削除してもB2の容量が空かないのはなぜですか?

B2はデフォルトで以前のバージョンを保持するからです。バケットのLifecycle SettingsでKeep only the last version of the fileを選んでください。

出典

料金と制限は以下の公式ページに基づいています。プロバイダーは変更することがあるため、契約前にご確認ください。