【教程】解決七牛雲圖片外鏈生效 - 5402 獲取bucket域名失敗
前段時間忙完一波,想要回來繼續把機器學習的課程筆記寫完,突然發現部落格園裡的所有圖片都顯示不了,通過外鏈開啟,發現報錯:
{"error":"no such domain"}
一直用的是七牛雲的圖床,趕緊登陸個人產品下的物件儲存,之前bucket裡的圖片都還在,但是一直提示:
5402 獲取bucket域名失敗
而且也下載不了,上網Google了一下,說是七牛雲測試域名要回收,新申請的測試域名也只有30天有效期,如果想繼續使用的話,需要繫結域名,還得是備案過的,很是麻煩。於是想著還是換了吧,實在沒心思再去折騰域名備案。
解決思路:
一. 下載七牛雲上的圖片到本地;
二. 利用GitHub做圖床;
三. 更新部落格中的圖片連結。
具體步驟:
一. 下載圖片到本地
七牛雲上之前的bucket裡的圖片已經沒辦法下載了,點選下載連結沒有反應。不過還好,我們可以曲線救國,在七牛雲裡新建一個儲存空間,然後把之前的圖片複製到新儲存空間裡,就可以手動下載圖片了。當然啦,七牛雲提供了工具qshell,讓我們能批量copy和download物件。
1. 下載qshell,解壓到檔案目錄下,並把這個目錄放置於系統環境變數裡;
2. 修改qshell_windows_x64.exe為qshell.exe(以windows 64位為例);
3. windows下用cmd命令視窗,執行命令新增賬號(AK/SK在七牛雲的 個人中心->金鑰管理 裡檢視):
qshell account [<AccessKey> <SecretKey> <BucketName1>]
4. 匯出bucket裡的檔案資訊:
qshell listbucket BucketName1 > file.txt
5. 提取第一列的檔名稱,linux下可以用awk命令,windows下可以用其它文字編輯工具或excel提取下:
awk "{print $1}" file.txt > file.txt
6. 批量複製檔案到之前新建的bucket裡:
qshell batchcopy BucketName1 BucketName2 -i file.txt
7. 利用qdownload批量下載檔案:
a)編寫一個qdownload.conf的配置檔案,寫法見說明:
{ "dest_dir" : "D:\\Program\\qshell\\image", "bucket" : "kplayer2", "prefix" : "", "suffixes" : "", "cdn_domain" : "http://xxxxxxx.bkt.clouddn.com", "referer" : "", "log_file" : "download.log", "log_level" : "info", "log_rotate" : 1, "log_stdout" : false }
b)執行命令,檢視下載檔案和日誌:
qshell qdownload qdownload.conf
二. 利用GitHub做圖床
檔案下載到本地後,可以找新的圖床了,如果選用騰訊COS的話可以參考這篇文章。
如果有GitHub賬號的話,直接就用GitHub做圖床也很方便,連線已經不像多年前那樣不穩定,速度也不會太慢,基本能滿足個人Blog需求。
新建repository -> 新建issue -> 起個標題,上傳或拖延圖片進去,自動生成URL
關於GitHub做圖床的高階用法,可以參考這篇文章。
三. 更新部落格圖片連結
如果是伺服器上的部落格就好辦多了,直接用寫個指令碼替換就好。但是部落格園上的文章,就不太清楚如何批量替換了,好在文章和圖片不多,我就手工更新了一下,如果有圖片錯誤的歡迎指出,或者如果有好的批量更新方法,也歡迎提供。