簡介
Backblaze B2 是一個雲端儲存解決方案,類似於Amazon AWS S3, 前 10GB 儲存是完全免費的,通常情況下,像使用 AWS S3 這類的服務,頻寬費用特別高。不過,由於有了 Bandwidth Alliance(頻寬聯盟),Backblaze 到 Cloudflare 之間的出口是完全免費的。
Backblaze B2有一個免費套餐,它可以讓你享受以下優惠:
- 10GB的儲存容量,足夠您存放一些重要的檔案或者媒體資料。
- 每天1GB的流量,可以讓您方便地上傳和下載資料,或者透過網路瀏覽檔案。
- S3相容的API,可以讓您輕鬆地將Backblaze B2整合到您的應用程式或者服務中。
- 支援多種工具和軟體,例如Cloudflare CDN、Veeam備份、NAS裝置等,可以讓您提高資料的安全性、可用性和傳輸速度。
即使超出了免費額度,Backblaze B2也只會收取非常低的費用:
- 每月$0.005/GB的儲存費用,比Amazon S3和Microsoft Azure便宜80%以上。
- 每月$0.01/GB的下載費用,比Amazon S3和Microsoft Azure便宜88%以上。
Backblaze配置
1.登入 Backblaze B2(可以直接使用 Google 帳號);
2.建立一個公開的儲存桶(Bucket)並上傳檔案;
3.在儲存桶設定的桶資訊中寫入 {"cache-control":"max-age=720000"}
,設定快取控制時間;
4.透過檢視檔案詳細資訊獲得檔案地址並複製備用,如;
https://f004.backblazeb2.com/file/<儲存桶名稱>/<資料夾名稱>/<檔名稱>
Cloudflare配置
5.登入 Cloudflare;
6.在某域名下(如果沒有就註冊一個,或者轉入一個)進入 SSL/TLS,確保 Cloudflare 以 FULL 模式對源使用 SSL(Backblaze B2 僅支援 HTTPS 連線);
7.在同域名下新建一條 CNAME 解析,建立一個該域名的子域,目標地址 f004.backblazeb2.com
(與檔案詳細中的檔案地址域名相同);
配置Page Rule快取
8.配置Page Rule快取可以降低對backblaze的訪問,在同域名下的 Rules > Page Rules 中配置頁面規則以僅允許從您的域中獲取您的儲存桶;
https://<解析的域名>/*
# 設定:快取級別 - 快取所有內容
重寫URL
9.因為桶名暴露在公共下比較危險,容易讓別人濫用流量。於是可以透過cloudflare進行URL重寫。點選規則-轉換規則-重寫URL,新增一個規則,在同域名下的 Rules > transform Rules 中配置轉換規則以隱藏儲存桶名稱,我們需要新增的規則為:當路徑為/file/bucket_name,且主機名為你剛才的二級域名時,重寫。
條件
http.request.uri.path ne "/file/{bucketName}" and http.host eq "{your_domain}"
重寫
concat("/file/{bucketName}",http.request.uri.path)
例如:
這裡的配置實現了{your_domain}/xxx.jpg -> https://f004.backblazeb2.com/file/{bucketName}/xxx.jpg
的轉換,既不會暴露自己的桶名稱,還縮短了 URL。
picgo配置
Picgo 是一個開源的圖片上傳工具,它可以讓你方便地將圖片上傳到各種圖床服務,包括 Backblaze B2(有 s3 外掛支援)。Picgo 支援 Windows、MacOS 和 Linux 系統,它有一個簡潔的介面和豐富的外掛。你可以透過快捷鍵、拖拽、剪貼簿等方式上傳圖片,也可以對圖片進行壓縮、裁剪、水印等處理。Picgo 還可以自動生成圖片的 URL 和 Markdown 程式碼,方便你在網上引用圖片。
PicGO的下載地址:https://github.com/Molunerfinn/PicGo/releases
PicGo Amazon S3 上傳外掛: https://github.com/wayjam/picgo-plugin-s3
10.在Backblaze的控制皮膚找到左側的Application Keys,然後拉下來新增一個新key,找到金鑰ID和金鑰複製填入到PicGo就可以使用PicGo愉快的上傳圖片了
"aws-s3": {
"accessKeyID": "002a03abebexample000002",
"acl": "public-read",
"bucketName": "example",
"endpoint": "s3.example.backblazeb2.com",
"pathStyleAccess": false,
"region": null,
"rejectUnauthorized": false,
"secretAccessKey": "K0028example96r7wtlblUQ",
"uploadPath": "PicGo/{fullName}",
"urlPrefix": "https://cdn.example.cn"
},