背景
近期收到兩封七牛云發(fā)來(lái)的郵件:
測(cè)試域名回收通知
您的賬號(hào)xxx在七牛云融合CDN加速平臺(tái)有以下測(cè)試域名還剩7個(gè)自然日會(huì)被系統(tǒng)自動(dòng)回收
由于,我博客所有的圖片文件都是存儲(chǔ)在七牛云的,這個(gè)域名也使用了一年多了,怎么突然要回收呢?
上網(wǎng)一搜才知道,大概是有什么不法分子之類的,使用七牛云的免費(fèi)空間傳播色情暴力之類的內(nèi)容,被Godday制裁了,現(xiàn)在新申請(qǐng)的bucket只能使用一個(gè)月,要想綁定域名,還得備案操作。俺這小博客,也就自己玩玩的一個(gè)國(guó)外服務(wù)器,也備不了案啊。
無(wú)奈,看網(wǎng)上很多人都是被回收了才知道自己的圖片都訪問(wèn)不了。還好我習(xí)慣性的看這些推送郵件,給自己留了一周時(shí)間用來(lái)備份轉(zhuǎn)移。既然免費(fèi)的不好用了,微博之類的圖床不好遷移,所以就買了一年阿里云的OSS服務(wù)。
雖然我的圖片還算不是很多,但要是一張一張手動(dòng)下載再上傳到阿里云,也是不小的工作量,而且太浪費(fèi)時(shí)間了。
于是,今天就花了點(diǎn)時(shí)間寫了一個(gè)自動(dòng)化遷移工具(move_qiniuyun_to_alioss),并開(kāi)源到GitHub了,沒(méi)什么復(fù)雜的操作,就是把圖片down下來(lái),本地備份一份數(shù)據(jù),然后再通過(guò)阿里云的API接口直接上傳到指定的bucket。
因?yàn)閿?shù)據(jù)量不大,也沒(méi)考慮使用FIFO,異步之類的(看情況以后再優(yōu)化吧,一切以需求為導(dǎo)向)。
雖然小,但還是希望盡量做到通用化,我把所有的配置參數(shù)都抽到了config.py文件中。每個(gè)人根據(jù)自己的配置修改,直接就可以用了。
以下為類unix系統(tǒng)的教程
準(zhǔn)備工作
使用tool/目錄中的七牛云工具qshell-darwin-x64:
注:qshell使用指南請(qǐng)參考:https://github.com/qiniu/qshell
配置訪問(wèn)騎牛云的account的access_key和secret_key
拉一份要搬移的七牛云bucket的文件清單:
# 需要先設(shè)置一下七牛云的 ak, sk # 獲取地址 https://portal.qiniu.com/user/key ./tool/qshell-darwin-x64 account ak sk # 分別是 執(zhí)行程序 命令行 bucket_name 生成的文件名 ./tool/qshell-darwin-x64 listbucket2 vimiix-blog-data listbucket.txt
執(zhí)行完以后正常會(huì)在當(dāng)前目錄生成一個(gè)listbucket.txt的文件,準(zhǔn)備工作就做好了。
修改配置文件
根據(jù)config文件中的注釋將每個(gè)參數(shù)設(shè)置為自己對(duì)應(yīng)的值即可。
AliOss AccessKeyID和AccessKeySecret獲取地址
https://usercenter.console.aliyun.com/#/manage/ak
執(zhí)行
這個(gè)工具使用到了阿里云的oss2包,需要版本大于3,但看官網(wǎng)寫著最高支持到Python3.5
所以我的虛擬環(huán)境也使用的Python3.5,建議你也這么做,省的麻煩。
# 創(chuàng)建虛擬環(huán)境,不需要單獨(dú)隔離環(huán)境的,可以直接在系統(tǒng)的 3 版本上安裝依賴包 virtualenv --python=python3.5 venv --no-site-package # 激活虛擬環(huán)境 source venv/bin/activate # 安裝依賴包 pip install -r pip-req.txt # 執(zhí)行 python main.py
執(zhí)行結(jié)果
大功告成!
項(xiàng)目地址
https://github.com/vimiix/move_qiniuyun_to_alioss
作者:Vimiix
鏈接:https://www.jianshu.com/p/bb1b5aa87da6