SyncY--可在路由上运行的百度网盘同步软件 SyncY 是一款通过调用百度 PCS 开放的 API 接口实现基于 linux 内核系统的文件上传、下载和同步的程序,可运行于 open-wrt、dd-wrt、centos 等 linux 内核的系统之上,也可运行于部分厂商的 nas 产品上,可实现文件的上传、下载和同步。 SyncY 从发布至今深受广大用户的喜欢和支持,如今已发展到第二版,在 V2 版中更是增加了多任务多线程的支持,实现了更高速度的上传和下载。 SyncY 官方网址: http://www.syncy.cn
提取了群晖的 PCS API 接口魔改而来,因为还有刷新 accesstoken 没破译出来,所以授权有效期为 30 天,不过到期前会发送一则微信消息提醒,点击消息即可对接口进行续期,因为涉及到了微信提醒,所以使用了微信的一次性订阅消息接口(无需关注公众号),具体操作为扫码后确认接收消息服务,然后登录百度账号对 PCS 接口授权,跳回接口域名再次同意一次即可获取到设备绑定的 token。
拉取镜像,挂载下载目录和配置文件目录,并进行初次运行配置。其中/localpath
需修改为为宿主机下载目标路径
浏览器中打开
https://pan.api.shekd.com/baidu/login
使用微信扫描浏览器显示的二维码后进行相关授权操作,获得授权 token 后,将所获得的 token 填入配置文件 syncy 第三行 token 处,再次启动容器程序将自动拉取您的授权信息(默认授权信息有效期为 30 天,在到期前 3 天内微信将会发送消息提醒你进行续期操作,直接点击微信消息按首次方法即可进行授权续期)。
INFO: Get device token success.
显示以上日志内容即为已经成功获取了您百度网盘的授权信息,程序已经可以正常工作。
程序具体配置说明请参考 http://www.syncy.cn/index.php/syncyconfighelp/
执行以下命令运行 Syncy
sudo docker start syncy
执行以下命令查看 Syncy 运行状态
sudo docker logs syncy
在 /etc/rc.local
中添加以下命令,使 syncy 随宿主机自动启动(需要先配置好 docker 自动启动)
docker start syncy
第一次研究 Python 第一次使用 Docker,程序不排除有 bug,欢迎提交,尽力修复
Dockerfile
构建镜像/config/syncy
/downloads/
/config/
/downloads/
项目主页 https://github.com/DarkiT/Syncy
1
lekai63 2017-08-27 18:12:49 +08:00 via iPhone
好棒 关注后续 目前没可开 docker 的路由
|
3
RqPS6rhmP3Nyn3Tm 2017-08-28 04:59:44 +08:00 via iPad
群晖自带百度云超级慢
|
4
cuit4017 2017-08-28 09:12:32 +08:00
一直想把 baidu 上存的大文件扒下来,持续关注
|
5
Wolfsin 2017-08-28 09:53:10 +08:00 via iPhone
支持,bypy 好像也能在路由器中部署吧?但是没有接口过期的提醒,不知道速度方面怎么样
|
6
snk100 2017-08-28 12:08:44 +08:00 via Android
关注一波,希望以后能够有个替代的。
|
7
fantasts 2017-08-29 01:27:14 +08:00 via Android
git 的 baidupcs 也很不错。
|
8
Thiece 2017-08-29 10:13:40 +08:00
好耶,可以在小米路由器 hd 上跑了
|
9
Tink 2017-09-05 15:38:16 +08:00
没看懂,没有具体的配置文件?
|
10
ZiShuo OP @Tink 其实就是以前的 Syncy 路由插件 配置和那个是一模一样的,只不过增加一个 token 选项,用来获取 accesstoken 的
|
11
nolo 2017-09-05 16:16:06 +08:00
百度 PCS 开放的 API 现在还能申请吗
|
12
Tink 2017-09-05 16:22:49 +08:00
@ZiShuo #10 看懂了,但是启动不了,群晖 docker 里
2017-09-05 08:22:25 Starting SyncY Traceback (most recent call last): File "/syncy.py", line 2228, in <module> sy = SyncY(sys.argv[1:]) File "/syncy.py", line 231, in __init__ responses = json.loads(responses) File "/usr/lib/python2.7/json/__init__.py", line 339, in loads return _default_decoder.decode(s) File "/usr/lib/python2.7/json/decoder.py", line 364, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode raise ValueError("No JSON object could be decoded") ValueError: No JSON object could be decoded |
13
markeseo 2017-09-06 15:32:35 +08:00
M 下
|