Telegraph-Image 免費自建圖床新增後台圖片管理...#
2023 年 1 月 19 日 1:51 AM 更新:之前發布的代碼,由於熬夜精神狀態不佳,寫代碼的時候犯了最低級的邏輯錯誤,本來應該是用 if(判斷如果設置了kv 環境變量),則(圖片首次加載時將圖片寫入 kv 儲存當中),但是昨天也不知道大腦短路了還是怎麼的,把 if 條件語句寫反了,寫成了 if(如果沒有設置kv 環境變量),則(圖片首次加載時將圖片寫入 kv 儲存當中),但很明顯如果沒有設置 kv 環境變量,根本不可能成功寫入 kv 儲存成功,導致昨天部分大佬部署出現:Error 1101 Worker threw exception,設置了 kv 環境變量的大佬雖然程序能夠正常運行,但是後台管理無法記錄圖片,因為程序不會執行寫入操作。對此我感到非常抱歉,給各位大佬造成了困擾,現在問題應該是修復了,煩請各位大佬部署最新版本的代碼,也感謝 @雾山 @mikj521 @那山很優雅 @3514088137 @hiing @telnetpig @mourner 等等大佬們的問題反饋,由於連續熬了幾天夜,昨天身體已經實在頂不住了,所以睡覺去了,沒能及時回復,抱歉!
之前隨口一說 GIthub 上超過 500 Star 就更新圖片管理功能,本來想的是一個小小的圖床程序根本不可能達到 500 Star,但沒想到各位大佬十分熱情,好家伙,一下子沒過幾個月時間就給我點到 600+ Star 了。沒辦法既然是答應了的事情,只能是硬著頭皮把圖片管理功能寫出來。
雖然在開發的過程中遇到了許多困難,花費的時間比我預想中的多了許多,發布的時間也是一拖再拖,在連續熬了幾個夜晚之後,終於趕在春節之前發布這次的更新,也提前在此新春佳節即將來臨之際祝各位大佬春節快樂!在新的一年裡能夠實現自己心中的願望!
廢話不多說,直接上代碼:
Image Hosting solution, Flickr/imgur alternative, make it easy for users to share their images. Using Cloudflare Pages and Telegraph.
之前沒有部署過的大佬,直接 fork 本倉庫就可以去 Cloudflare Pages 後台進行部署了。
下面就來介紹本次更新的主要內容:
1、萬眾期待的圖片管理功能,默認是關閉的,如需開啟請部署完成後前往後台依次點擊 “設置”->“函數”->"KV 命名空間綁定"->“編輯綁定”->"變量名稱" 填寫:img_url “KV 命名空間” 選擇你提前創建好的 KV 儲存空間,開啟後訪問 http (s):// 你的域名 /admin 即可打開後台管理頁面
(如何創建 KV 儲存空間,請參考:https://github.com/xyTom/Url-Shorten-Worker/#%E5%8E%BBworkers-kv%E4%B8%AD%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E5%91%BD%E5%90%8D%E7%A9%BA%E9%97%B4)
2、後台管理頁面新增登錄驗證功能,默認也是關閉的,如需開啟請部署完成後前往後台依次點擊 “設置”->“環境變量”->"為生產環境定義變量"->“編輯變量”
“變量名稱” “值”
BASIC_USER = <後台管理頁面登錄用戶名稱>
BASIC_PASS = <後台管理頁面登錄用戶密碼>
當然你也可以不設置這兩個值,這樣訪問後台管理頁面時將無需驗證,直接跳過登錄步驟,這一設計使得你可以結合 Cloudflare Access 進行使用,實現支持郵件驗證碼登錄,Microsoft 賬戶登錄,Github 賬戶登錄等功能,能夠與你域名上原有的登錄方式所集成,無需再次記憶多一組後台的賬號密碼,添加 Cloudflare Access 的方式請參考官方文檔,也歡迎各位大佬分享教程,注意需要保護路徑包括 /admin 以及 /api/manage/*
3、新增圖片總數量統計
當開啟圖片管理功能後,可在後台頂部查看記錄中的圖片數量
4、新增圖片文件名搜索
當開啟圖片管理功能後,可在後台搜索框使用圖片文件名稱,快速搜索定位需要管理的圖片
5、新增圖片狀態顯示
當開啟圖片管理功能後,可在後台查看圖片當前的狀態 {"ListType": "None", "TimeStamp": 1673984678274}
ListType 代表圖片當前是否在黑白名單當中,None 則表示既不在黑名單中也不在白名單中,White 表示在白名單中,Block 表示在黑名單中,TimeStamp 為圖片首次加載的時間戳,如開啟的圖片審查 API,則這裡還會顯示圖片審查的結果用 Label 標識
6、新增黑名單功能
當開啟圖片管理功能後,可在後台手動為圖片加入黑名單,加入黑名單的圖片將無 ** 常加載
7、新增白名單功能
當開啟圖片管理功能後,可在後台手動為圖片加入白名單,加入白名單的圖片無論如何都會正常加載,可繞過圖片審查 API 的結果
8、新增記錄刪除功能
當開啟圖片管理功能後,可在後台手動刪除圖片記錄,即不再後台顯示該圖片,除非有人再次上傳並加載該圖片,注意由於圖片儲存在 telegraph 的伺服器上,我們無法刪除上傳的原始圖片,只能通過上述第 6 點的黑名單功能屏蔽圖片的加載
9、新增程序運行模式:白名單模式
當開啟圖片管理功能後,除了默認模式外,這次更新還新增了一項新的運行模式,在該模式下,只有被添加進白名單的圖片才會被加載,上傳的圖片需要審核通過後才能展示,最大程度的防止不良圖片的加載,如需開啟請設置環境變量:WhiteList_Mode=="true"
10、新增後台圖片預覽功能
當開啟圖片管理功能後,可在後台預覽通過你的域名加載過的圖片,點擊圖片可以進行放大,縮小,旋轉等操作
這次的更新內容很多,可以算是重量級更新了,整個程序的後端代碼幾乎全部重寫了一遍,也花了不少時間,希望各位大佬覺得好用的話,看在我連續熬夜肝了這麼久的份上能否幫我在 Github 上點個免費的 Star,也可以幫我多多宣傳一下,分享給更多的人,非常感謝!
已經部署了的,如何更新?
其實更新非常簡單,只需要參照上面的更新內容,先進入到 Cloudflare Pages 後台,把需要使用的環境變量提前設置好並綁定上 KV 命名空間,然後去到 Github 你之前 fork 過的倉庫依次選擇 “Sync fork"->"Update branch" 即可,稍等一會,Cloudflare Pages 那邊檢測到你的倉庫更新了之後就會自動部署最新的代碼了
一些注意事項:
Cloudflare KV 每天只有 1000 次的免費寫入額度,每有一張新的圖片加載都會占用該寫入額度,如果超過該額度,圖片管理後台將無法記錄新加載的圖片
每天最多 100,000 次免費讀取操作,圖片每加載一次都會占用該額度(在沒有緩存的情況下,如果你的域名在 Cloudflare 開啟了緩存,當緩存未命中時才會占用該額度),超過黑白名單等功能可能會失效
每天最多 1,000 次免費刪除操作,每有一條圖片記錄都會占用該額度,超過將無法刪除圖片記錄
每天最多 1,000 次免費列出操作,每打開或刷新一次後台 /admin 都會占用該額度,超過將進行後台圖片管理
絕大多數情況下,該免費額度都基本夠用,並且可以稍微超出一點,不是已超出就立馬停用,且每項額度單獨計算,某項操作超出免費額度後只會停用該項操作,不影響其他的功能,即即便我的免費寫入額度用完了,我的讀寫功能不受影響,圖片能夠正常加載,只是不能在圖片管理後台看到新的圖片了。
如果你覺得免費額度實在不夠用,可以自行向 Cloudflare 購買 Cloudflare Workers 的付費版本,每月 $5 起步,按量收費,沒有上述額度限制(怎麼感覺我在給 Cloudflare 打廣告?Cloudflare 趕緊打錢,把廣告費結一下 /doge 手動狗頭)
上述注意事項所得出的結論是經過多天的反復測試得出的,基本應該是成立的,但不排除後期 Cloudflare 突然改變相關政策。其次,本次更新所發布的全部功能,都經過了多次的反復測試,如在使用過程中各位大佬遇到 bug,很有可能是 Cloudflare 或是瀏覽器緩存造成的,可以嘗試先清除一下緩存再試,另外針對環境變量所做的更改將在下次部署時生效,如更改了環境變量,請記得重新部署。
如果嘗試了清除緩存,重新部署還是有問題的話,可以在 github 上提 issue 反饋,畢竟這次更新的功能較多,然後我一個人的水平和時間都比較有限,雖然已經是做了反復測試,但還是很難說是把每一個功能,每一種情況都測試到,出現 bug 在所難免。能趕在新年之前發布,作為送給各位大佬的新年禮物,對於我個人來說已經是很不容易了,開發過程中遇到了許多困難,曾多次想要放棄,想直接鴿了算了,但是一想到有這麼多大佬(600+ stars)在默默的支持我,在 Github 上給我點小星星,我就覺得不能辜負了各位大佬的好意,無論如何都要咬牙把圖片管理功能更新出來。
補充說明:變量名稱是 img_url,不是 img url,注意有下劃線
我也遇到了,不然是自定義域名還是默認域名,上傳後管理頁面都沒有記錄
針對這個問題,可能我寫的不是很清楚,現在補充說明一下:圖片上傳後不會立刻在後台顯示出來,而是需要通過你的域名加載過該張圖片才會記錄下來,你可以試試上傳圖片後先手動訪問一次圖片,看看後台是否會有記錄
重新部署可以了,感謝
登錄也設置好了,有個小疑問:前台上傳圖片目前沒有權限限制,以後會增 ...
可以開啟白名單模式,限制圖片加載,因為後端的圖片儲存是採用了 telegraph 圖床,即便限制前台圖片上傳,別人也可以直接通過 telegraph 官方的服務上傳圖片,所以限制前台圖片上傳沒有太多的必要,且用處也不是很大
但你可以限制圖片的加載,這樣就能夠最大程度保證域名安全,其次當你開啟了圖片加載限制,別人上傳的圖片無法進行加載也大概率不會繼續使用你的域名上傳圖片了,因為如果只是用來上傳圖片的話別人完全可以直接部署一個屬於自己的圖床用於上傳或使用官方的接口
所以只只要限制了圖片加載,開啟白名單模式,目前來說已經基本夠用了
這個超過免費額度後會怎麼樣?直接不響應停止服務還是號有可能被封
目前在我測試的時候超出額度賬號不會封,是否停止服務,超出不同的額度對應不同的結果,具體帖子裡面有解釋
補一張測試過程中超出 kv 免費使用額度的截圖,僅供參考,如需長期超額使用,請購買付費套餐 該截圖是 Demo 圖床所對應的 kv,目前該圖床已超出免費的寫入額度,目前無法在圖片管理後台看到新加入的圖片,但是不影響其他功能的使用,各位大佬可以自行訪問 Demo 網站測試:https://im.gurl.eu.org
就差部署到小雞上了
支持,話說加個可以配合 picgo 一起使用的功能嗎
可以看下這位大佬寫的
設置了 BASIC_PASS BASIC_USER, 域名 /admin 就直接進了 dashboard 了,,沒有要求輸入密碼,瀏覽器開 ...
圖片顯示有問題,cloudflare 的 bug,以文字說明為準,設置環境變量後記得要重新部署一次
cf pages 原生支持 cname 接入,可以直接配置優選 ip,不需要綁卡開啟 saas
1 月 19 日 4:35 AM 更新,優化代碼邏輯,減少 KV 的寫入數量,避免 KV 免費寫入數量快速耗尽的情況,有需要的大佬可以更新到最新的版本
不需要管理功能的話,有必要更新嗎?
可以不用更新,本次更新主要就是新增了管理功能,其他沒有太大的改變,但其實更新也很方便,如果不啟用管理功能的話,去 GitHub 上點幾下鼠標就行了
其實更新非常簡單,只需要參照上面的更新內容,先進入到 Cloudflare Pages 後台,把需要使用的環境變量提前設置好並綁定上 KV 命名空間,然後去到 Github 你之前 fork 過的倉庫依次選擇 Sync fork->Update branch 即可,稍等一會,Cloudflare Pages 那邊檢測到你的倉庫更新了之後就會自動部署最新的代碼了
不需要管理功能的話,直接去到 Github 你之前 fork 過的倉庫依次選擇 Sync fork->Update branch 即可,稍等一會,Cloudflare Pages 那邊檢測到你的倉庫更新了之後就會自動部署最新的代碼了
設置 kv 以後點擊重新部署了嗎?設置 kv 或是環境變量後要重新部署才能生效,這是 cloudflare 的限制
修復【更新】Telegraph-Image 免費自建圖床新增後台圖片管理...
https://hostloc.com/thread-1127284-1-1.html
(出處:全球主機交流論壇)