自动化迁移七牛云的数据到阿里云 OSS

背景

近期收到两封七牛云发来的邮件:

测试域名回收通知

您的账号 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 ---

本作品采用《CC 协议》,转载必须注明作者和本文链接
To be a full-stack man.
Vimiix
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!