前言#
前幾天發現一個大問題,就是博客訪問往往秒開,但是圖片會一直卡著一點一點加載出來,特別耗費時間,尤其是有些文章裡包含多張大尺寸圖片的。所以為了解決這個問題我試著發帖尋找好的方法帖子之一。
解決方案#
同時我也提供了三個方案
自己編寫程式在 halo 後臺上傳圖片時自動縮小上傳圖片大小 這是我能想到最好的方案使用自帶縮略大小功能的圖床 但畢竟資源放在自己這裡更安心吧 不穩定的圖床網站可能導致圖片丟失在上傳前把照片縮小 除非有批量處理軟體推薦 否則較為繁瑣
但是以上三個方案都存在一定的問題,在不斷了解後找到了可能是最好的解決方案。
後來我才了解到雲存儲這個東西。得出以下。
最優解決方案#
1. 雲存儲 + 圖片處理 —— 能夠突破自身帶寬限制結合自帶的圖片處理
2. gzip—— 優化網頁訪問速度
3. cdn 加速或全站加速
第一選擇 - 嘗試又拍雲過程中發現的一些問題#
由於最開始聽許多人都是配置的又拍雲存儲因為有送空間和流量,一年能便宜十幾塊吧。但是後來配置不起來也就沒管,那天突然想起問題所在即SSL 證書沒有配置好。圖片顯示地址需要解析到自己的域名,但是 halo 會根據證書同步原則自動將 https 的網頁綁定 https 的附件網址,所以如果博客有 https,那麼附件的地址也應為 https 否則無法訪問。
總之第一次弄雲存儲也需要不斷試錯,我們直接進入正題。
halo 對接阿里雲對象存儲 oss 配置#
本著用誰家的伺服器就用誰家的拓展業務的狗屁道理,我選擇阿里雲的 oss 對象存儲功能。
價格分析#
阿里雲裡購買對象存儲。根據定價解讀出檔案 5g 以下免費,但是資料傳輸有關的功能需要收費。雖然可以先用後付不過我們體驗完全沒有問題因為阿里雲支持最高 10 元的欠費。
halo 後臺附件配置#
在 halo 後臺 系統 —— 博客設置 —— 附件設置 —— 存儲位置 更改為阿里雲稍後會填充其他信息。
創建 bucket#
到阿里雲管理後臺創建bucket,注意存儲類型標準存儲,讀寫權限是公共讀其他不影響。記住 bucket 名稱填入 halo 後臺。
點擊創建的 bucket 名稱,左邊欄概覽,記下訪問域名 —— 外網訪問的Endpoint(地區節點)和Bucket 域名填入 halo 後臺。當然也可以綁定解析到自己的域名,可以自己嘗試,但需要注意 http 和 https 協議(我就是這麼踩坑的)。
創建 access 子帳戶#
阿里雲介面右上角個人那裡點AccessKey 管理,可以理解為設置一個專門的帳戶開啟對接權限。
開始使用子帳戶 —— 創建用戶, 需要注意勾選編程訪問。
創建完成獲得AccessKey ID和AccessKey Secret,填入 halo 後臺。
返回 oss 控制台點擊創建的 bucket 名稱。權限管理 ——Bucket 授權策略 —— 新增授權 —— 子帳號選擇剛創建的子用戶,注意要選完全控制。
* 圖片處理#
圖片處理是相當重要的環節,現在不管是拍照還是截屏的檔案大小都不小,寬帶很慢的情況下必須適當壓縮圖片來提升訪問的速度。
oss 控制台裡數據處理 —— 圖片處理 —— 新建樣式,然後根據自己的需要調整即可。
創建完後需要注意上面的圖片處理域名規則
域名/sample.jpg?x-oss-process=style/stylename
這個對應 halo 的圖片處理策略修改填寫。
需要注意的是,圖片處理是在上傳時處理完畢的,即後期修改圖片處理方案無法應用於現有處理過的圖片。所以建議不斷嘗試直到找到完美的方案後再批量上傳。
以下是本人推薦方案
其他雲存儲推薦#
推薦的免費雲存儲平台又拍雲,比較看好他們的又拍雲聯盟活動。在網站 footer 處添加友聯即可。但又拍雲不支持 halo 後臺瀏覽附件。
參考文章#
為博客搭建圖床
oss 價格實踐結果
halo & 又拍雲
網站開啟 gzip