七牛雲回收測試域名的應對辦法
2018年9月,七牛雲回收了所有測試域名,這直接導致各種部落格系統的所有圖片資源全部失效,包括了我自己的solo部落格,這個專案記錄了這個問題的解決辦法
案例程式碼: ofollow,noindex" target="_blank">github/hand-solo-pic-url
解決步驟
-
登入七牛雲後臺,配置自己的域名
-
詳細步驟:七牛雲後臺 -> 域名管理 -> 新增域名 -> 新增自己的域名記錄(比如我的 oss.liumapp.com)
-
注意事項:七牛雲會要求您的域名必須完成備案,否則無法新增,並且新增成功後,七牛雲會提供一串CNAME地址,您需要把這串CNAME地址跟自己的域名解析起來。
-
在七牛雲後臺配置物件儲存
-
詳細步驟:七牛雲後臺 -> 物件儲存 -> 選擇自己的儲存空間 -> 內容管理 -> 設定外鏈預設域名為剛剛配置成功的域名(oss.liumapp.com)
-
注意事項:新增域名後,需要等待七牛雲的稽核,稽核通過後才可以進行這一步的操作,操作完成後,可以在內容管理列表中,直接選擇一張圖片來看看外鏈地址:(一般長這樣:http://oss.liumapp.com/004a8d56bba1416a8e004447a65bcf08.jpg)
-
接下來修改solo資料庫,把所有博文的圖片資源地址中的測試域名,替換為自己剛剛設定好的域名(oss.liumapp.com)即可
-
替換sql:
SET SQL_SAFE_UPDATES = 0; UPDATE b3_solo_article SET articleContent = REPLACE( articleContent,'http://你之前七牛測試域名地址','http://oss.liumapp.com') ;
我之前的七牛測試域名是:http://om40sen9v.bkt.clouddn.com,那麼sql就是:
UPDATE b3_solo_article SET articleContent = REPLACE( articleContent,'http://om40sen9v.bkt.clouddn.com','http://oss.liumapp.com') ;
在sql命令列或者相關工具中對文章表(大D在新版本的solo中似乎改動了資料表,所以您在操作之前,請確認一遍表名與欄位名是否匹配)進行修改。
各位看官讀到這裡,基本上就解決了自己部落格圖片資源路徑失效的問題,但是我這裡還想做一些特殊操作,接下來記錄的內容,介紹瞭如何將七牛雲的圖片資源轉移到GitHub上(換句話說,就是利用GitHub作為自己站點的OSS儲存服務,我之所以想要這麼折騰一番,是希望在後續將部落格的前後端進行分離實現,前端整體部署到GitHub,後端則利用自己的ECS資源僅僅提供API服務)。
-
使用GitHub儲存所有部落格圖片:
-
首先可以使用官方推薦的python指令碼(script/download-process.py)將七牛雲oss.liumapp.com空間上的所有資源下載下來
-
對python不熟悉的同學,手擼Java程式碼,再通過七牛雲的api也是可以達到批量下載的目的(src/main/test/…/APITest.java)
-
APITest.java的getItemList方法為獲取你七牛雲空間的所有檔案資訊
-
APITest.java的downloadAllFile方法為下載你七牛雲空間的所有檔案
-
注意事項:在執行之前,你需要首先配置src/main/java/…/resources/application.yml檔案,填寫自己的七牛雲appkey以及secretKey等資訊
-
另外在下載過程中,要考慮目錄層級、目錄許可權的事情(案例程式碼裡面已經全部解決這些問題了,如果看官自己寫的話請留意一下)
附上一張下載完成後的截圖
-
-
完成所有圖片的下載後拷貝上傳GitHub…再同樣的方法修改圖片url即可,記得再最後面引用圖片的時候帶上 ?raw=true 引數
Author:liumapp
Home-page:http://www.liumapp.com
Email:[email protected]
沒有什麼問題是一行程式碼解決不了的,如果有那就兩行,但除了香菸跟姑娘。