七牛雲圖床自救指南
背景
之前一直在用七牛雲的儲存做圖床(簡稱白嫖)。但是免費的午餐必然不會長久,七牛要求所有bucket都要繫結備案過的域名,否則就停掉你的bucket的外鏈。這事我也不吐槽啥,畢竟是白嫖,也不能要求啥。
但是最智障的是,你外鏈停了沒關係,但是我在後臺portal檢視檔案,上面的圖還是顯示不了,點下載也沒有反應,只顯示“ [5402] 獲取 bucket 域名失敗”。說好不嫖了,你卻又不讓我走了,都沒辦法資料遷移的。
因為部落格裡的圖全都存在了七牛的圖床上,這麼一波搞下來就非常傷。於是我積極展開自救行動。
大偵探毛利小五郎
我:你看我們天天查問題,像不像柯南在查案子?
同事:我覺得我們更像毛利小五郎。
大膽猜測七牛的portal也是使用了外鏈的URL,如果不綁域名的話,是沒有檔案的URL的。但是我手裡又沒有備案後的域名。事情就陷入了僵局。
七牛提供了小工具(qrsctl)讓我們管理檔案,我覺得這可能是個突破點,萬一小工具可以把資料下載下來呢?結果也是不行,這就非常GG了。
此時,我又發現小工具有拷貝資料的功能,可以把跨bucket拷貝資料,但是我的所有的bucket都沒有綁域名。也並不能解決問題。
我突然又想到,七牛雲其實並沒有完全禁止外鏈。對於一個全新的bucket,七牛會免費提供30天的測試域名,所以新的bucket是可以進行檔案下載的。
這樣問題就解決了,我新建一個bucket,掛上測試域名,然後把檔案都下載下來。這樣資料就保住了。
一波自信操作
首先我們先從portal上獲取ak和sk。
然後使用qrsctl,登入,並獲取bucket下面的所有檔案。
./qshell_linux_x64 account {ak} {sk} [email protected] ./qshell_linux_x64 listbucket { bucket_name } | awk -F"\t" '{print $1}' > files.txt
接下來把檔案拷貝到新的bucket下面。
./qshell_linux_x64 batchcopy { bucket_name } { new_bucket_name } -i files.txt
此時需要登入portal,獲取新的bucket的測試域名。然後填入下載配置檔案中。
{ "dest_dir":"./dest_dir", "bucket":"{ new_bucket_name }", "cdn_domain" : "{ your_test_domain.clouddn.com }", "prefix":"", "suffixes":"" }
最後把檔案統統下載下來,大功告成。
./qshell_linux_x64 qdownload qdisk_down.conf
後記
現在改用github做圖床了,這個是真 點 白嫖了。