項目來自GitHub
目前有 1.6k Fork 和 1.1k Star
可以看項目的 README.md 操作,也可以看本帖子操作
準備工作
- 一個 GitHub 帳號
沒有也行 - 一個 cloudflare 帳號
- 一個域名並且已經托管到 cloudflare
沒托管也行
打開 GitHub 登錄,找到項目,或者點上面的鏈接
點擊 Fork
直接 Create fork
然後到 cloudflare,點擊Workers 和 Pages
點擊右邊區域的創建應用程序
點擊 pages,然後點擊連接到 git,授權
選擇剛才 fork 的項目,點擊開始設置
都不用改,點保存並部署
如果沒有 GitHub 帳號,可以下載下,選擇下面的使用直接上傳創建
,後面的部署都是一樣的
部署完以後回到Workers 和 Pages
會發現右邊多了個項目,自動分配了個.pages.dev 的域名
這個域名經過測試,不掛代理打不開
所以要自定義域名
點擊項目名稱,進入後點擊自定義域,點擊下面的設置自定義域
輸入自己的域名點擊繼續
如果域名托管到 cloudflare,那麼會自動幫你添加 dns,然後點擊激活域
如果是托管到其它,則需要根據提示手動添加,添加完後點擊激活域
完成後,等待域名生效就行
訪問自定義的域名
上傳圖片試試
如果提示出錯了,重新上傳就行
點擊右邊按鈕複製路徑,右邊紅色返回按鈕,返回上傳界面
這時候就有人說了,如果我前面上傳的圖片要用,但是我沒有保存路徑怎麼辦
回到 cloudflare,點擊 KV
點擊創建命名空間
名稱自己起,點擊添加
點擊項目的設置裡的函數
往下拉,找到這個
變量名稱設置img_url
,KV 空間填自己剛才設置的,點擊保存
回到項目,點擊最新部署的那次的右邊的三個點,選擇重新部署
打開 自定義的域名 /admin
測試時發現上傳圖片後需要訪問一下才能在管理後台顯示,不知道是我網速慢還是 bug,還是本來就是這樣設定的
管理後台有了,但是沒有設置密碼,這樣有些不安全,圖片鏈接暴露了,別人有可能會找到管理地址
回到項目,點到設置 > 環境變量 > 編輯變量,添加用戶名BASIC_USER
和密碼BASIC_PASS
保存後重新部署一下
再來到管理界面,輸入剛才設置的登錄賬號和密碼登錄
官方文檔也寫了其它的登錄方式
當然你也可以不設置這兩個值,這樣訪問後台管理頁面時將無需驗證,直接跳過登錄步驟,這一設計使得你可以結合 Cloudflare Access 進行使用,實現支持郵件驗證碼登錄,Microsoft 賬戶登錄,Github 賬戶登錄等功能,能夠與你域名上原有的登錄方式所集成,無需再次記憶多一組後台的賬號密碼,添加 Cloudflare Access 的方式請參考官方文檔,注意需要保護路徑包括 /admin 以及 /api/manage/*
根據文檔,還能開啟圖片審查,但是我沒有試,感興趣的可以自己試一下
限制
- 由於圖片文件實際存儲於 Telegraph,Telegraph 限制上傳的圖片大小最大為 5MB
- 由於使用 Cloudflare 的網絡,圖片的加載速度在某些地區可能得不到保證
- Cloudflare Function 免費版每日限制 100,000 個請求(即上傳或是加載圖片的總次數不能超過 100,000 次)如超過可能需要選擇購買 Cloudflare Function 的付費套餐,如開啟圖片管理功能還會存在 KV 操作數量的限制,如超過需購買付費套餐
- Cloudflare KV 每天只有 1000 次的免費寫入額度,每有一張新的圖片加載都會占用該寫入額度,如果超過該額度,圖片管理後台將無法記錄新加載的圖片
- 每天最多 100,000 次免費讀取操作,圖片每加載一次都會占用該額度(在沒有緩存的情況下,如果你的域名在 Cloudflare 開啟了緩存,當緩存未命中時才會占用該額度),超過黑白名單等功能可能會失效
- 每天最多 1,000 次免費刪除操作,每有一條圖片記錄都會占用該額度,超過將無法刪除圖片記錄
- 每天最多 1,000 次免費列出操作,每打開或刷新一次後台 /admin 都會占用該額度,超過將進行後台圖片管理
- 絕大多數情況下,該免費額度都基本夠用,並且可以稍微超出一點,不是已超出就立馬停用,且每項額度單獨計算,某項操作超出免費額度後只會停用該項操作,不影響其他的功能,即即便我的免費寫入額度用完了,我的讀寫功能不受影響,圖片能夠正常加載,只是不能在圖片管理後台看到新的圖片了。
- 如果你的免費額度不夠用,可以自行向 Cloudflare 購買 Cloudflare Workers 的付費版本,每月 $5 起步,按量收費,沒有上述額度限制
- 另外針對環境變量所做的更改將在下次部署時生效,如更改了環境變量,針對某項功能進行了開啟或關閉,請記得重新部署。