百度网盘Python客户端bypy
简单说明:
- 由于百度
PCS API
权限限制,bypy
只能存取百度云端/apps/bypy
目录下面的文件和目录 bypy
没有提速效果,想要下载不限速,需要自行购买SVIP
之前老苏写过 『 Docker中运行百度网盘客户端 』,那是带图形界面的官方客户端,而
bypy
则是第三方的命令行工具
构建镜像
如果你不想自己构建,可以跳过,直接阅读下一章节
bypy
官方没有提供 Dockerfile
或者镜像,但第三方的还是很多的,只是都有些年代久远,所以老苏还是准备自己构建
v1
版Dockerfile
1 | FROM python:3.6-slim |
但是老苏发现 v1
版的容器停止后会无法启动,因为 bypy info
在获取到云盘容量后会退出,导致 exited with code 0
,因此老苏引入了 Supervisor
来做进程管理
v2
版Dockerfile
1 | FROM python:3.6-slim |
v2
版除了 Dockerfile
,还需要准备 supervisord.conf
文件
1 | [include] |
构建镜像和容器运行的基本命令如下👇
1 | # 将 Dockerfile 和 supervisord.conf 放在同一个目录 |
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 wbsu2003
,找到 wbsu2003/bypy
,版本选择 latest
。
卷
在 docker
文件夹中,创建一个新文件夹,并将其命名为 bypy
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/bypy |
/baidupy |
文件存放目录 |
运行
和 cloud189-cli
一样,bypy
也是命令行方式的,所以要么在 SSH
客户端上运行,要么进 『终端机』 运行。
老苏建议还是在
SSH
客户端上运行比较方便,关于cloud189-cli
请看:『在群晖上使用天翼云盘』
终端机
–> 新增
–> 通过命令启动
–> bash
第一次需要授权,执行 bypy info
,然后复制红框部分的内容,在浏览器中打开
复制生成的授权码
粘贴到红框位置,然后回车
程序会利用不同的服务器进行认证,认证成功会显示百度网盘的容量,如果一次没成功,可以多试几次。
过程有点长,而且失败的概率还挺高的,要有耐心~~~
有的网站直接报错
有的访问不到
极端情况下会认证失败,只能重新再来一遍了,因为这个授权码有时间限制
认证成功后,会显示空间的大小
授权只需一次,一旦成功,以后就不会再出现授权提示
access_token
和refresh_token
保存在/~/.bypy/bypy.json
中
常用命令
帮助
执行 bypy
或者 bypy help
更详细的可以运行
1 | bypy help <command> |
例如: bypy help list
文件列表
执行 bypy list
可以列出云盘的文件
在百度盘中的 /apps/bypy
目录中
下载
也就是将云盘内容同步到本地,可以执行 bypy syncdown
或者 bypy downdir /
,不是会员的话,下载速度就比较慢
下载完成后,可以在 File Station
中看到下载的文件
上传
也就是将当前目录同步到云盘,可以执行 bypy syncup
或者 bypy upload
先在 File Station
增加一个将近百兆的 exe
文件
上传速度比下载要快一点
同步完成
刷新网盘
比较
要比较本地当前目录和云盘(程序的)根目录,可以执行 bypy compare
为啥会 Different:2
,老苏也没闹明白,很可能是因为下载中断过的缘故
更多命令和详细解释请看运行 bypy
的输出,或者阅读官方的文档。
参考文档
houtianze/bypy: Python client for Baidu Yun (Personal Cloud Storage) 百度云/百度网盘Python客户端
地址:https://github.com/houtianze/bypy/bypy-百度网盘Python客户端 linux - 简书
地址:https://www.jianshu.com/p/c9467daf701f/exited with code 0 docker - Stack Overflow
地址:https://stackoverflow.com/questions/44884719/exited-with-code-0-dockerUnderstanding Docker Container Exit Codes | by Sandeep Madamanchi | Better Programming
地址:https://betterprogramming.pub/understanding-docker-container-exit-codes-5ee79a1d58f6