博客除草計劃(一):使用 Backblaze、Cloudflare 和 rclone 管理博客圖片

有一年多沒有更新博客了吧,最近想把博客給拾掇拾掇,打開博客就發現圖片加載好慢。我一直使用的是免費資源,比較費精力,託管圖片的地方也換了好幾個,每種方法有所長,也有所短。

本文搭建圖牀的方法主要參考這篇文章,使用 Backblaze B2 存儲圖片,Cloudflare 配置子域名、設置緩存等,rclone 用做 B2 的客戶端,管理本地的圖片。

上圖爲設置前後的效果對比,使用這種方法後,博客圖片加載快了不少。

Backblaze B2

B2 是 Backblaze 的雲儲存產品,有 10GB 的免費存儲空間,用來存儲圖片足夠了,B2 的具體配置過程,文末給出的參考文章介紹得很詳細,可以具體參考。

配置妥當後,資源的 URL 形如 https:/fxxx.backblazeb2.com/file/<bucket-name>/path/to/resource 這種形式,如果不需要子域名、緩存等進一步需求,到這就可以了。

Cloudflare

使用 Cloudflare,它需要你把域名的 DNS 服務器換成它家的。配置子域名時,需要一定的時間生效,請耐心等待,完成後,資源的 URL 變成 https:/subdomain.domain.com/file/<bucket-name>/path/to/resource

按照參考文章的步驟,配置好 Cloudflare Workers 後,資源的 URL 變成了 https:/subdomain.domain.com/path/to/resource ,去掉了 /file/<bucket-name>,如此一來,顯得更專業了許多。Workers 就是一段 JavaScript 代碼,由特定的路由觸發,可對站點的原始請求、響應進行修改,在這裏通過 Worker 腳本完成了定製 URL 等需求。

在 Cloudflare 上還可以設置站點的緩存,設置緩存後,站點響應會更快。

rclone

考慮到平臺支持性,我選擇 rclone 這個工具用做 B2 的客戶端,管理本地資源。rclone 是一個命令行工具,用來同步本地資源到各種雲存儲解決方案。rclone 支持各種平臺,文檔也很詳盡。

// 配置 B2, 需要控制面板創建的 API key
rclone config

// 列出所有云端目錄
rclone lsd remote:

// 列出某個 bucket 中的所有文件
rclone ls remote:[bucketName]

// 複製文件
rclone copy [pathFrom] [pathTo] 

// 利用命令替換, 可實現本地資源按年月分類上傳雲端
rclone copy [pathFrom] remote:[bucketName]/$(date +%Y)/$(date +%m)

// 刪除文件
rclone delete [path]

// 同步本地至雲端, -P 參數用於開啓傳輸過程
rclone sync [source] [dest] -P

在 B2 上的文件,路徑前需要加上 remote:,假設 B2 上有一個 bucket 的名稱爲 mistletoe,上傳本地文件 some.txt 至 B2 的命令就是 rclone copy some.txt remote:mistletoe/some.txt。如果覺得一張張上傳太麻煩,可使用 sync 命令將本地目錄同步至雲端。

參考資料

原文鏈接:https://dukeluo.me/2020/02/12/blog-clean-plan-1.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章