指南

Backblaze B2 檔案管理工具:連接到 Nubbo

如何將 Backblaze B2 儲存桶連接到 Nubbo:應用程式金鑰、區域、連線精靈的每個步驟、用 B2 CLI 設定 CORS,以及失敗時該怎麼做。

Nubbo 透過 Backblaze B2 的 S3 相容 API,以應用程式金鑰和你帳戶的區域進行連接。只要幾分鐘,你的儲存桶就會出現在檔案總管中,支援直接上傳、分享連結和相簿。這份指南會逐步帶你走過 Nubbo 連線精靈的兩種方式:自動,或使用僅限一個儲存桶的金鑰。

你會得到什麼

  • 像使用雲端硬碟一樣瀏覽儲存桶:資料夾、檢視方式、搜尋、垃圾桶、標籤和最愛。
  • 檔案直接在你的瀏覽器和 Backblaze B2 之間上傳和下載。檔案從不經過 Nubbo 的伺服器。
  • 以密碼、到期日和下載次數限制分享檔案和資料夾,把檔案接收到你的儲存桶,還能建立相簿。
  • 你的金鑰以 AES-256-GCM 加密儲存,你可以隨時中斷儲存桶的連線。

開始之前

你需要一個 Backblaze B2 帳戶和一個 Nubbo 帳戶。你連接的每個儲存桶都計入你的方案上限:免費方案可連接 2 個,Personal 5 個,Pro 則不限。在 B2 上,區域是在建立帳戶時選定的,並套用到帳戶的所有儲存桶。你可以在任一儲存桶的端點中看到它,格式類似 s3.<region>.backblazeb2.com:這就是你在 Nubbo 中要選擇的區域。帳戶的主金鑰無法用於 S3 API,所以請一律建立應用程式金鑰。

選擇連線方式

Nubbo 連線精靈提供兩種方式。兩者的結果相同:儲存桶完成連線,可以從瀏覽器上傳檔案。

自動使用受限金鑰
金鑰可存取整個帳戶僅限一個儲存桶
儲存桶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,然後按下 繼續。

    Nubbo 連線精靈的服務供應商步驟,已選取 Backblaze B2 Nubbo 連線精靈的服務供應商步驟,已選取 Backblaze B2
  2. 選擇 自動,然後按下 繼續。

    連線方式步驟,含自動和使用受限金鑰兩個選項 連線方式步驟,含自動和使用受限金鑰兩個選項
  3. 在 你的金鑰 步驟中貼上 keyID 和 applicationKey,並選擇你帳戶的區域。按下 檢查金鑰。Nubbo 會確認金鑰可用,且能存取整個帳戶。

    Backblaze B2 的你的金鑰步驟,含快速設定指南和金鑰欄位 Backblaze B2 的你的金鑰步驟,含快速設定指南和金鑰欄位
  4. 選擇你的其中一個儲存桶並按下 使用這個儲存桶,或選擇 新建,輸入名稱(如果有要求,再選擇區域),然後按下 建立並準備。Nubbo 會在儲存桶中新增一條 CORS 規則,只允許從應用程式上傳和下載,並保留原有的規則。

    你的儲存桶步驟,含儲存桶清單和新建選項 你的儲存桶步驟,含儲存桶清單和新建選項
  5. 檢查三項確認結果,視需要變更 在 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 中的訊息該怎麼做
「這把金鑰似乎僅限一個儲存桶。你可以繼續使用受限方式,或建立一把具有完整存取權限的金鑰。」按下繼續使用受限金鑰,或建立一把可存取整個帳戶的金鑰,然後按下換一把金鑰。
「找不到儲存桶。請確認名稱和區域。」確認儲存桶的確切名稱,以及所選區域是否為儲存桶所在的區域。
「你的金鑰沒有建立儲存桶的權限。」使用具有完整存取權限的金鑰,或在你的控制台建立儲存桶,然後按下我已在控制台中建立。
「這個名稱在此服務供應商已被使用;請換一個。」儲存桶名稱在整個服務供應商中是唯一的:請換一個。
「你的金鑰沒有設定它的權限。」依照上方說明手動新增 CORS 規則。
「仍未生效。請檢查規則後再試一次;部分服務供應商需要約一分鐘才能套用。」確認來源完全是 https://nubbo.app,結尾沒有斜線,等一分鐘後再檢查一次。
「此儲存桶已在使用中。」這個儲存桶已經在 Nubbo 中連線,可能是在你的帳戶或其他帳戶中。
「憑證無效。請檢查存取金鑰和私密存取金鑰。」確認你沒有使用主應用程式金鑰,它無法用於 S3 API。
「儲存桶位於不同的區域。請確認設定的區域。」在 Nubbo 中選擇儲存桶端點中顯示的區域。

費用

Backblaze B2 按 TB 計費,提供 10 GB 免費空間,流出流量在儲存量三倍以內免費。我們在 Backblaze B2 定價 中說明。

常見問題

我可以使用 Backblaze 的主應用程式金鑰嗎?

不行。Backblaze 的 S3 相容 API 不支援主金鑰。請在 Application Keys 下建立應用程式金鑰。

在 Nubbo 中 B2 要選擇哪個區域?

就是你儲存桶端點中的區域,格式類似 s3.<region>.backblazeb2.com。在 B2 上,同一個帳戶的所有儲存桶都位於同一個區域。

為什麼要用 B2 CLI 設定 CORS?

因為主控台的規則是預設範本,無法選擇 Nubbo 需要的操作。CLI 是套用確切規則最簡單的方式;任何能對 B2 端點執行 PutBucketCors 的 S3 工具也都可以。

為什麼在 Nubbo 中刪除檔案後,B2 的空間沒有釋出?

因為 B2 預設會保留先前的版本。請在儲存桶的 Lifecycle Settings 中選擇 Keep only the last version of the file。

資料來源

價格與限制取自以下官方頁面。服務供應商會調整這些內容,決定前請先確認。