背景
近期收到兩封七牛雲發來的郵件:
測試域名回收通知
您的賬號 xxx 在七牛雲融合CDN加速平臺有以下測試域名還剩7個自然日會被系統自動回收
由於,我部落格所有的圖片檔案都是儲存在七牛雲的,這個域名也使用了一年多了,怎麼突然要回收呢?
上網一搜才知道,大概是有什麼不法分子之類的,使用七牛雲的免費空間傳播色情暴力之類的內容,被 Godday 制裁了,現在新申請的 bucket 只能使用一個月,要想繫結域名,還得備案操作。俺這小部落格,也就自己玩玩的一個國外伺服器,也備不了案啊。
無奈,看網上很多人都是被回收了才知道自己的圖片都訪問不了。還好我習慣性的看這些推送郵件,給自己留了一週時間用來備份轉移。既然免費的不好用了,微博之類的圖床不好遷移,所以就買了一年阿里雲的 OSS 服務。
雖然我的圖片還算不是很多,但要是一張一張手動下載再上傳到阿里雲,也是不小的工作量,而且太浪費時間了。
於是,今天就花了點時間寫了一個自動化遷移工具(move_qiniuyun_to_alioss),並開源到 GitHub 了,沒什麼複雜的操作,就是把圖片 down 下來,本地備份一份資料,然後再通過阿里雲的 API 介面直接上傳到指定的 bucket。
因為資料量不大,也沒考慮使用 FIFO,非同步之類的(看情況以後再優化吧,一切以需求為導向)。
雖然小,但還是希望儘量做到通用化,我把所有的配置引數都抽到了 config.py
檔案中。每個人根據自己的配置修改,直接就可以用了。
以下為類 unix 系統的教程
準備工作
使用 tool/
目錄中的七牛雲工具 qshell-darwin-x64
:
注:qshell 使用指南請參考:https://github.com/qiniu/qshell
- 配置訪問騎牛雲的 account 的
access_key
和secret_key
- 拉一份要搬移的七牛雲 bucket 的檔案清單:
# 需要先設定一下七牛雲的 ak, sk
# 獲取地址 https://portal.qiniu.com/user/key
./tool/qshell-darwin-x64 account ak sk
# 分別是 執行程式 命令列 bucket_name 生成的檔名
./tool/qshell-darwin-x64 listbucket2 vimiix-blog-data listbucket.txt
執行完以後正常會在當前目錄生成一個 listbucket.txt
的檔案,準備工作就做好了。
修改配置檔案
根據 config
檔案中的註釋將每個引數設定為自己對應的值即可。
- AliOss AccessKeyID 和 AccessKeySecret 獲取地址
執行
這個工具使用到了阿里雲的 oss2
包,需要 版本大於3, 但看官網寫著最高支援到Python3.5
所以我的虛擬環境也使用的Python3.5,建議你也這麼做,省的麻煩。
# 建立虛擬環境,不需要單獨隔離環境的,可以直接在系統的 3 版本上安裝依賴包
virtualenv --python=python3.5 venv --no-site-package
# 啟用虛擬環境
source venv/bin/activate
# 安裝依賴包
pip install -r pip-req.txt
# 執行
python main.py
執行結果
大功告成!
專案地址
--- EOF ---