原文首發於網站:http://robotkang.cc/2018/11/pic/
最近發現博客裏面的好多圖片都不顯示了,因爲我用的是七牛圖牀,登錄七牛一看,[5402] 獲取 bucket 域名失敗,說是測試域名收回了,導致我的圖片都不顯示了而且點擊預覽和下載都是沒有反應的 。心中真是萬般不爽。就像和多說遷移一樣。解決辦法就是再綁定一個已備案的域名替代,備案這種東西對於我沒什麼必要。所以我就打算把圖牀遷移到騰訊COS(騰訊的有一定的免費容量)上。
然後就折騰了下遷移方案,記錄一下。
使用 qshell 轉移bucket文件到另一bucket
1.下載 qshell , 文檔說明:命令行工具(qshell)
2.如果你希望可以在任意目錄下使用 qshell,請將 qshell 工具可執行文件所在目錄添加到系統的環境變量中。由於 Windows 系統是圖形界面,所以方便一點。假設qshell_windows_x64.exe
(我用的電腦環境:win7 64 位)命令被解壓到路徑 E:\jemy\tools
目錄下面,那麼我們把這個目錄放到系統的環境變量 PATH 裏面。
3.更名 qshell_windows_x64.exe
爲 qshell.exe
4.qshell 是一個命令行工具,在 Windows 下面請先打開命令行終端,然後輸入工具名稱執行(不要雙擊打開,否則會出現閃退現象)。
5.添加賬號: qshell account <AK> <SK>。
(AK/SK 需要去 個人中心->密鑰管理 看下你自己的)
6.導出 A bucket 文件信息: qshell listbucket A A.list.txt
7.格式化文件信息,切割出文件名: awk "{print $1}" A.list.txt > list.txt。
① 在使用命令和配置文件時,需要使用 “” 雙引號,不能使用單引號。
② awk:[url]http://nchc.dl.sourceforge.net/project/gnuwin32/gawk/3.1.6-1/gawk-3.1.6-1-setup.exe[/url] ,安裝後將 bin 加入PATH。
8.轉移到 B bucket: qshell batchcopy A B list.txt
。把過期的文件列表搬遷到新的存儲空間,我這裏會出現讓輸入一個確認字符串,照着輸入就行
然後就可以在網頁上的新的存儲空間看到之前那些無法查看的文件了。不過還是丟失了歌曲和一部分圖片。
批量下載到本地
因爲我要遷移到騰訊COS,自然要把圖片下載下來,不過在網頁端只能一張張圖片下載,還好 qshell 提供了 qdownload 可以批量下載文件,不過官網給出的 api 文檔特別標註了,這個接口默認是要收費的:配置【該功能默認需要計費,如果希望享受10G的免費流量,請自行設置 cdn_domain 參數,如不設置,需支付源站流量費用,無法減免!!!】
相關文檔:qdownload
主要是需要寫個配置文件,並且記住,得配置下cdn_domain 這個參數,在本地新建一個配置文件 batch_download.conf。
注意: 當使用 qdownload 等需要配置文件的命令時,不要使用 Notepad++ 等編輯器來編寫配置文件,在本地右鍵默認新建一個文本文檔來進行編寫,編寫完再改名爲 batch_download.conf。
{ # Windows 平臺下的文件路徑需要寫爲\\的寫法,如C:\\Users\\li\\Downloads "dest_dir" : "/xxx/xxx/Downloads/qiniu", "bucket" : "kang", (新建的 bucket 的名稱) "prefix" : "", "suffixes" : "", "cdn_domain" : "http://pgiolcvny.bkt.clouddn.com",(新建的 bucket 的測試域名) "referer" : "", "log_file" : "download.log", "log_level" : "info", "log_rotate" : 1, "log_stdout" : false }
運行命令(下載併發數表示可以同時下載10個文件):
qshell qdownload 10 batch_download.conf
終端中就可以看到日誌,然後在dest_dir路徑中的文件夾裏就可以看到你要下載的文件了。
上傳到騰訊COS
我們把所有的文件下載下來之後,然後還需要把文件上傳到COS,這樣圖片纔可以作爲資源被外部訪問,如果你之前沒有使用過對象存儲服務,還需要先創建一個存儲桶,記住權限要設置成對外可讀(不然別人也訪問不了),然後把這些文件上傳到這個存儲桶裏邊,這個在網頁上就可以直接操作,可以批量把剛纔下載的都上傳了。官方也有文件管理軟件 COS Browser,上傳下載圖片還是挺方便的。
控制檯配置
注意有兩個關鍵的配置不能忽略
- 存儲桶(bucket)訪問權限
- 防盜鏈設置
1、訪問權限
訪問權限應設置爲公有讀私有寫。很好理解,我們是要用COS來做圖牀的,必然是需要獲取文件的直接鏈接才行,所以不能在讀取圖片的時候設置權限。
權限設置文檔在此: 訪問權限應設置
2、防盜鏈
如果被盜鏈會導致你的免費額度可能會快用盡,因此防盜鏈也是需要考慮的。
下圖以我的博客地址爲例
開啓之後即使其他人獲取到鏈接也無法訪問相應圖片
注意:因爲開啓了防盜鏈這設置,因此當你在本地寫博客的時候會出現圖片無法預覽的情況。因爲防盜鏈機制只允許白名單中指定域名或IP訪問。也就是說只能在博客中看
批量替換博文裏七牛雲鏈接
然後就只剩一步了,我們現在可以通過騰訊的COS來作爲我們的圖牀服務,所以如果你寫的新的博客,可以直接用新的地址,但是你之前寫的那些博客,都是七牛的域名,所以需要把博客的原始文件裏面的圖片鏈接全部替換成騰訊COS的域名,老的域名可以看你的博客文件,例如我的是:http://7xn9y9.com1.z0.glb.clouddn.com
,然後新的域名可以直接在騰訊雲控制檯,點開一張你上傳過的圖片查看,我的是:https://blog-1254094716.cos.ap-chengdu.myqcloud.com
.具體的文件名因爲都是一樣的編碼方式,所以只用替換域名就行,這裏可以用sed命令來批量操作:
cd source/_post * Linux用戶 sed -i 's#(http://7xn9y9.com1.z0.glb.clouddn.com#(https://blog-1254094716.cos.ap-chengdu.myqcloud.com#g' *.md
備註: 之所以替換的鏈接帶上 (
是爲了防止誤傷,比如這邊文章裏就有七牛的域名鏈接地址,但是圖片鏈接在MarkDown寫法裏都是放在括號裏的,所以記得這麼替換就行
OK,到這兒就折騰的差不多了,還有部分的圖片和音樂就手動替換吧。有時候免費的往往需要付出更多 ,道理不過如此。謹記,與我與你。
訪問 Google請移步:https://vip.member.biwcloud.com/aff.php?aff=6