Backblaze B2 Storge
前言
Backblaze B2 Storge 免費額度
存儲容量:10 GB
網絡流量:1 GB/天
上傳流量:無限
B 類操作:2500 次/天
Bucket:100 個
b2_download_file_by_name
为 B 類操作
但是由於 Cloudflare 的 Bandwidth Alliance(帶寬聯盟)中包含了 Backblaze,因此 Cloudflare 與 Backblaze 之間的流量是免費的,另外通過 Cloudflare 的緩存也可以減少請求數
配置 Backblaze
創建庫
登錄 Backblaze
創建一個 Bucket
名稱盡量確保不易被別人猜測到
確保類型為 public
,除非這是你的私有庫
獲取主機名
上傳任意一個文件,用於獲取 Bucket 所在地址
查看詳細信息
記住 Friendly URL 中的主機名,例如我的是 f004.backblazeb2.com
設置 Bucket
Bucket Settings 中的 Bucket Info 填寫 {"cache-control":"max-age=86400"}
這意味著 86400 秒(也就是 24 小時)内 Cloudflare 不再返回源站重新获取信息
max-age
不宜太長或太短
CORS Rules 中設置為 Share everything in this bucket with all HTTPS origins
配置 Cloudflare
添加 DNS 記錄
登錄 Cloudflare
進入一個域名,添加一條 DNS 記錄,CNAME 解析到 Bucket 的主機名
將 SSL/TLS 中的加密方式改為 Full 或 Full(strict)
這一步是必要的,因為 Backblaze 僅支持 HTTPS 連接,Cloudflare 將通過 HTTPS 回源
現在就可以通過你的域名訪問 Bucket 了
格式:https://example.com/file/bucket/filename
將 bucket
和filename
替換為你的 Bucket 名稱及文件名
但是直接使用別人就可以直接獲取到你的 Bucket 名稱
Headers 中也會暴露出你的 Bucket 信息
可以通過 Cloudflare 中的 Transform Rules 重寫 URL 以及去除這些 header
重寫 URL
轉到 Rules 中的 Transform Rules
創建一條 Rewrite URL 的規則
- Field: Hostname
- Operator: equals
- Value:
example.com
And
- Field: URI Full
- Operator: does not contain
- Value:
https://example.com/file/bucket/
example.com
替換成你的域名,bucket
替換成你的 Bucket 名稱
匹配主機名用於確定請求來源需要進行重寫,且再次匹配完整 URI 確認不包含已經重寫過的鏈接,避免出現反復重寫的錯誤。
Then
Rewrite to… 選擇 Dynamic
填寫 concat("/file/bucket", http.request.uri.path)
bucket
替換為你的 Bucket 名稱
去除響應頭
另外創建一條 Modify Response Header
- Field: Hostname
- Operator: equals
- Value:
example.com
下面設置需要去除的 header
Expires
X-Bz-Upload-Timestamp
x-bz-content-sha1
x-bz-file-id
x-bz-file-name
x-bz-info-src_last_modified_millis
優化後 https://example.com/filename
設置 WAF
轉到 Cloudflare 的 WAF
設置一條防盜鏈規則
設置頁面規則
設置一條規則保證 Cloudflare 固定時間返回源站獲取信息
使用 PicGo 上傳
Backblaze 中增加一條 App Key
最長有效時間為 86400000 秒,即 1000 天
記住你的 Bucket 信息中的 Endpoint
PicGo 安裝 S3 插件
填寫信息
自定義節點填寫上面的 Endpoint