使用Bypy插件实现Linux系统中百度网盘的上传下载操作

对于很多开发人员来说经常会面临大量数据需要备份的问题,比如数据库的bin-log数据日志,亦或软件包。而往往较大容量的备份数据从服务器上Download需要花费很长的数据,并且使用的Xftp文件传输工具也不可能持续稳定的长连接传输文件,另外连接中断后也并不能支持断点续传重试。因此,我们会想是否有替代的方式解决上面提到的问题。这篇文章则利用百度网盘来实现这个牛掰的备份功能。

大多数使用过百度网盘的人想必都有其免费提供的2TB存储空间。一般来讲,这个免费的存储容量足够用于个人的数据备份。那么如果在linux系统中把数据备份到百度网盘上,下面我们具体讲解百度云的一款Python客户端工具Bypy。

1. Centos依赖安装

在安装Bypy软件工具之前,这里需要稍微提一下一些注意点。对于Centos 7操作系统在安装pip之前,需要先如下安装依赖:

1
# yum -y install epel-release

2. 安装软件工具

1
2
3
# yum -y install python-pip
# pip install requests
# pip install bypy

3. 授权登陆

执行 bypy info,显示下边信息,根据提示,通过浏览器访问下边灰色的https链接,如果此时百度网盘账号正在登陆,会出现长串授权码,复制。

1
2
3
4
5
6
# bypy info
Please visit: # 访问下边这个连接,复制授权码
https://openapi.baidu.com/oauth/2.0/authorize?scope=basic+netdisk&redirect_uri=oob&response_type=code&client_id=q8WE4EpCsau1oS0MplgMKNBn
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done # 提示在下边粘贴授权码

在下边图示红色位置粘贴授权码,耐心等待一会即可(1-2分钟)

1
2
3
4
5
6
7
8
Press [Enter] when you are done
a288f3d775fa905a6911692a0808f6a8
Authorizing, please be patient, it may take upto None seconds...
Authorizing/refreshing with the OpenShift server ...
OpenShift server failed, authorizing/refreshing with the Heroku server ...
Successfully authorized
Quota: 2.015TB
Used: 740.493GB

授权成功。

4. 上传文件到云盘

由于百度PCS API权限限制,程序只能存取百度云端/apps/bypy目录下面的文件和目录。我们可以通过:

1
2
# bypy list
/apps/bypy ($t $f $s $m $d):

把本地当前目录下的文件同步到百度云盘:

1
# bypy upload /文件路径/文件名  /网盘路径

把云盘上的内容同步到本地:

1
# bypy downdir

比较本地当前目录和云盘根目录,看是否一致,来判断是否同步成功:

1
# bypy compare

把当前目录同步到云盘

1
# bypy syncup

PS: 运行时添加-v参数,会显示进度详情。