自動化遷移七牛雲的資料到阿里雲 OSS

Vimiix發表於2018-10-25

背景

近期收到兩封七牛雲發來的郵件:

測試域名回收通知

您的賬號 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_keysecret_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 檔案中的註釋將每個引數設定為自己對應的值即可。

執行

這個工具使用到了阿里雲的 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 ---

To be a full stack man.

相關文章