一、安装百度云盘bypy客户端
百度云盘bypy客户端是由第三方开发的,并不是官方客户端。
安装百度云盘bypy客户端的具体步骤如下:
- 通过
sudo apt-get install python
命令安装Python - 通过
sudo apt-get install python-requests
命令安装python-requests库 - 通过
git clone https://github.com/houtianze/bypy
命令将bypy客户端下载到本地
现在可使用相应目录下的“bypy.py”脚本使用百度云盘bypy客户端。
二、使用百度云盘bypy客户端
可使用bypy.py help
命令查阅使用百度云盘bypy客户端的帮助文档。接下来主要介绍使用百度云盘bypy客户端上传本地的数据到百度云盘和从百度云盘下载数据到本地。
需要注意的是,第一次运行任意bypy命令会要求进行授权,复制提示中的链接可以得到一个授权码,复制输入授权码,在确认之后就能完成授权。
假定“bypy.py”脚本的具体路径为“/home/dsl/bypy/bypy.py”。
2.1、上传本地的数据到百度云盘
命令为:
1 | /home/dsl/bypy/bypy.py syncup . / true |
它表示将当前目录下的所有数据上传到百度云盘的“apps/bypy”目录下,上传过程中采用增量上传的方式,而且百度云盘上多余的文件会被删除。
在实际应用中,为便于事后分析,需要将命令执行结果重定向到文件,因此以上命令更改为:
1 | /home/dsl/bypy/bypy.py syncup . / true >> /home/dsl/bypy.out |
执行以上命令,却发现得到如图1所示异常。
图1
这是Python 2.x系列版本的bug,解决方案是将命令改为PYTHONIOENCODING=UTF-8 /home/dsl/bypy/bypy.py syncup . / true >> /home/dsl/bypy.out
。
假设需要经常上传“/home/dsl/bigdisk/KuaiPan2”目录下的数据到百度云盘,为了方便,我们可以根据上述命令编写一个Shell脚本,内容如下:
1 | #!/bin/bash |
在上面命令中加上“-v”选项是为了方便查看命令执行进度。
2.2、下载百度云盘的数据到本地
命令为:
1 | /home/dsl/bypy/bypy.py syncdown / . true |
它表示将百度云盘的“apps/bypy”目录下的数据下载到当前目录,下载过程中采用增量下载的方式,而且当前目录下多余的文件会被删除。
其他讨论类似于“2.1、上传本地的数据到百度云盘”,这里不再赘述。
三、安装和使用过程注意事项
3.1、百度云盘不区分大小写###
由于百度云盘是跨平台的,因此不区分大小写。如果在本地有“web”和“Web”两个目录,“web”目录下有“1.txt”文件,“Web”目录下有“2.txt”文件,执行上传命令后,在百度云盘上只有“web”(或者“Web”)目录,其中的文件为“1.txt”和“2.txt”。
参考文献: [1]https://github.com/houtianze/bypy [2]http://chase-seibert.github.io/blog/2014/01/12/python-unicode-console-output.html