1. 程式人生 > >【教程】解決七牛雲圖片外鏈生效 - 5402 獲取bucket域名失敗

【教程】解決七牛雲圖片外鏈生效 - 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做圖床的高階用法,可以參考這篇文章

 

三. 更新部落格圖片連結

如果是伺服器上的部落格就好辦多了,直接用寫個指令碼替換就好。但是部落格園上的文章,就不太清楚如何批量替換了,好在文章和圖片不多,我就手工更新了一下,如果有圖片錯誤的歡迎指出,或者如果有好的批量更新方法,也歡迎提供。