用 JavaScript 修改 Blogger 網站上的 IPFS 圖片閘道器位置 (Gateway)
前言
大約從去年開始,糊塗流浪貓進行了以 IPFS 作為網站圖床的實驗,有興趣的人可以參考本站的 IPFS 系列教學,本文不多贅述。
多數情況下,用 IPFS 分享的圖片與檔案都能正常顯示,若擔心檔案因過於冷門而被節點 Garbage Collection 清理的話,也可用腳本工具來加快與維持 IPFS 檔案下載速度。
但 IPFS 真正致命的問題在於「速度非常不穩定」。有時下載與顯示非常順利,但更多時候要重刷兩三次才能正常。
面對這個問題,最直覺的解決方式就是把預設的 ipfs.io 網址換成速度更快的閘道器,畢竟只要檔案 CID 不變,閘道器怎樣換都可以。 翠維尼
但如果網站上使用 IPFS 為圖床的文章實在太多的話該怎麼辦?一個個慢慢改?未免太硬派了吧!畢竟 Blogger 不像 Wordpress 那樣,有擴充套件可以批次對內文進行修正。
雖然我們可以匯出文章備份用純文字編輯工具 (Notepad++) 快速替換網址,但 Blogger 有每日文章的發佈數量限制,在上傳至 Blogger 時一個不小心可能會被 Google 當作 SPAM 砍站。
對於這個問題,其實可以寫個簡單的 Javascript 來解決。
替換圖片網址的域名 (Domains)
版面配置 > 新增 HTML/JavaScript 小工具,輸入以下程式碼。之後網站上所有 img 標籤內的 https://ipfs.io/ipfs/ 都會自動轉換成 https://dweb.link/ipfs/ 了。
<script type="text/javascript">
var imgs = document.getElementsByTagName("img");
for (var i = 0; i < imgs.length; i++) {
var src = imgs[i].src;
imgs[i].src = src.replace('https://ipfs.io/ipfs/','https://dweb.link/ipfs/');
}
</script>
而這套方法也適用於想將圖片從 HackMD 或 imgur 搬回自己伺服器的站長們。只要用批次下載軟體將 imgur 的圖片下載回來後,在維持檔名的情況下上傳至自己的伺服器,最後用這套 Javascript 腳本將 https://i.imgur.com/ 替換成新的圖床伺服器域名即可。
延伸閱讀
LikeCoin 註冊 ISCN 後於 IPFS 作為永久圖床的實測結果
永久圖床?用 LikeCoin 註冊 ISCN 將檔案釘在 IPFS 上進行分享