前段時間忙完一波,想要回來繼續把機器學習的課程筆記寫完,突然發現博客園里的所有圖片都顯示不了,通過外鏈打開,發現報錯:
{"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做圖床的高級用法,可以參考這篇文章。
三. 更新博客圖片鏈接
如果是服務器上的博客就好辦多了,直接用寫個腳本替換就好。但是博客園上的文章,就不太清楚如何批量替換了,好在文章和圖片不多,我就手工更新了一下,如果有圖片錯誤的歡迎指出,或者如果有好的批量更新方法,也歡迎提供。