では、ゲームを始めましょう
GO FOR IT !

前言

前两天D盘炸了,数据没了,要考虑一下数据备份才行,毕竟搞不好什么时候数据就没了

准备python

最新版即可,自行下载 (bypy支持Python 2.7+, 3.3+)

安装bypy

bypy是百度云的一个python客户端,可以直接用指令实现文件上传与下载(题外话,你甚至可以用来挂下载,不过慢的离谱

pip install bypy

可以用 python -m bypy 验证是否安装完成

安装完成后,进行百度账号的授权,将权限赋予bypy客户端

授权bypy

可以继续用cmd打开python,运行一下两个指令

>> from bypy import ByPy
>> bp=ByPy()

会跳出来一段文本,里面有一个连接,点击进入

复制出授权码,然后粘贴到命令框

image-20220714181540747

看到这个提示,说明授权成功了

同时,在你的百度云里面,会多出来一个文件夹

image-20220714181656919

(“apps”在百度云的根目录里显示是“我的应用数据”)

所有bypy上传的文件都会在这个目录里面,因为权限问题,bypy只能操作这个目录之下的文件

但是对于我们备份文件而言,完全足够

编写py脚本

github上给出的基本是命令行指令,python里面作为包调用的指令基本没人提到,我也没找到具体的说明文档

houtianze/bypy: Python client for Baidu Yun (Personal Cloud Storage) 百度云/百度网盘Python客户端 (github.com)

不过基本的编辑器里面调用了包之后都会提示函数的使用,各位自行研究吧

这里列几个命令行指令

  • bypy list 显示在云盘文件列表
  • bypy syncup 或者bypy upload 把当前目录同步到云盘
  • bypy syncdown --downloader aria2或者bypy downdir / --downloader aria2把云盘内容同步到本地来,这个命令不好用,要在后面加 –downloader aria2,要不没有速度
  • bypy compare 比较本地当前目录和云盘目录
  • bypy downfile 下载文件名 下载文件
  • bypy upload 文件名 上传文件
  • bypy mkdir tmp/bypy 在远端创建文件夹tmp
  • 运行时添加-v参数,会显示进度详情。
  • 运行时添加-d,会显示一些调试信息。

然后下面是我自用的脚本

import sys, time
from bypy import ByPy

log_file = open(time.strftime("%Y{0}%m{0}%d{0}%H{0}%M{0}%S".format('_'), time.localtime(time.time())) + '.log', 'w')
sys.stdout = log_file
sys.stderr = log_file

bp=ByPy()
bp.list()

bp.upload("D:\xxx","/xxx") #这里格式注意,前一个元素是本地路径,使用'\';后面是云端路径,使用'/'

log_file.close()

很简洁,bypy都封装好了,上传就是个upload指令,没啥花样

我加了输出日志的功能,你测试的时候就会看到,有一堆信息和日志

比如有时候会上传文件和本地的md5不匹配(默认自动测试本地与云端文件的MD5是否匹配)

出于保险,还是留个日志

自动化

Windows有个“任务计划程序”,就类似Linux的crontab,可以计划性启动脚本

image-20220714184015235

我们点击“创建基本任务”

image-20220714184053410

名称啥的随意填

image-20220714184125656

触发按照你的需要,比如每天备份,或者每周备份,都可以

操作选“启动程序”,毕竟我们是脚本程序

image-20220714184218533

重点来了!!!

我测试下来,稳定运行要先创建一个bat文件

python ./AutoByPy.py

里面很简单,就是调用python运行我们写好的py脚本

然后我们的自动化是要启动这个bat脚本,再由这个bat运行我们的py脚本

绕了个弯

其他教程

有写直接调用python运行py脚本的,不过我测试之后运行失败,当然你们可以试试

我这里还是用bat运行,对于bat脚本:

image-20220714185017194

这两个位置必填,必填,必填,重要事情说三遍

第一个是bat文件,不用说,肯定要的,而“起始于”这一项要填写该bat文件的路径

比如“程序或脚本”是:D:\文档\personal\备份\AutoByPy\AutoByPy.bat

“起始于”就要填写:D:\文档\personal\备份\AutoByPy\

结束

这样配置下来,就可以让电脑自动备份数据到百度云里了

总访问量 访问人数