[教程]PyOne:一款支持绑定多网盘的 OneDrive 文件本地化浏览系统
说明:之前博主介绍过一个 OneDrive 网盘的目录索引程序 OneIndex,而且发了不少安装和使用 教程 了,介绍查看:OneIndex,今天再介绍个类似的工具 PyOne,基于Flask 开发的,由于是模仿的 OneIndex,自然功能就差不多,就是界面好看很多,后台也可以直接上传编辑文件,目前作者新增多网盘和离线下载,该功能刚出来,BUG 肯定是有的,可以向作者反映修复下,这里说一下安装 教程。
截图




更新
【2019.2.16】PyOne代码组织大变更!更新版本号为4.0!【2018.11.19】新增离线下载功能,依赖Aria2。【2018.11.15】PyOne喜迎 3.0 版本,支持绑定多个 onedrive 网盘,再也不怕 5T 小姐姐不够看了。
特性
# 简单易用只需简单设置,即可做一个 onedrive 文件列表分享程序。# 功能丰富可设置文件夹密码。只需在文件夹添加.password文件,内容为密码内容,即可在该文件夹设置密码可设置README。# 后台强大防盗链设置。后台上传文件。后台更新文件。后台设置统计代码后台管理 onedrive 文件。直接删除 onedrive 文件直接在后台给文件夹添加.password和 README 和HEAD直接在后台编辑文本文件。上传本地文件至onedrive支持创建文件夹支持移动文件(仅限单文件)# 支持绑定多网盘# 支持离线下载
安装
Github 地址:https://github.com/abbeyokgo/PyOne
使用文档:https://wiki.pyone.me/
账号支持:只支持 onedrive 商业版、教育版、个人版
环境要求:Python2.7、Redis、Mongodb、Nginx
1、安装宝塔
#Centos 系统yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh#Ubuntu 系统wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh#Debian 系统wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && bash install.sh
安装完成后,进入面板,点击左侧软件管理,然后安装 Nginx、Redis、MongoDb。注意Debian 安装 MongoDb 之前还需要使用命令 apt install sudo,不然可能存在MongoDb 启动不了的情况。
2、拉取源码
使用命令:
git clone https://github.com/abbeyokgo/PyOne.git
3、开始依赖
cd /root/PyOnepip install -r requirements.txt
4、开始运行
# 复制配置文件cp self_config.py.sample self_config.pycp supervisord.conf.sample supervisord.conf
如果当前不是在 root 目录下 (本文是默认root 目录下),则需要修改 self_config.py 的config_dir参数和 supervisord.conf 的directory参数为正确的目录!
# 运行gunicorn -w4 -b 0.0.0.0:34567 run:app
然后试着访问:http://ip:34567看看能正常显示,如果不能,请在宝塔的安全里开启端口。
5、安装 Aria2
git clone https://github.com/abbeyokgo/aria2_installer.gitcd aria2_installersh install_aria2.sh
域名设置
点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标 URL 填入http://127.0.0.1:34567,再启用反向代理即可。
然后再点击配置文件,进行如下修改:
# 加上中间三句location /{...proxy_buffering off;proxy_cache off;proxy_set_header X-Forwarded-Proto $scheme;...}
最后就可以进入域名打开授权页面了。
授权成功即可,首次访问,会显示登录后台,输入初始密码:PyOne后会自动跳转到绑定网盘页面。如果没有跳转到绑定网盘页面,可以按照:后台 - 文件管理 - 添加网盘进行下一步。
开机启动
网站源码下有个supervisord.conf,主要内容如下:
[program:pyone]command = gunicorn -k eventlet -b 0.0.0.0:34567 run:appdirectory = /root/PyOneautorestart = true
主要修改两个地方:
端口号:即 34567 那个端口号,修改为自己选的,或者不改动源码目录:directory修改为你选的网站目录
修改之后运行下面的命令(记得修改为正确的目录),设置开机启动:
echo "supervisord -c /root/PyOne/supervisord.conf" >> /etc/rc.d/rc.localchmod +x /etc/rc.d/rc.local
重启生效。
本次不用重启生效的方法:
supervisord -c /root/PyOne/supervisord.conf
绑定多网盘
绑定好第一个网盘之后,登录后台(/admin)- 文件管理,即可看到网站顶部还有两个“添加网盘”的链接,点进去即可继续绑定更多网盘。
注意:为确保可以正确绑定网盘,请开一个隐私窗口或者清除 cookies 后再绑定新网盘!
目前默认是只能绑定 3 个网盘,如果你需要绑定更多的网盘,可以编辑 self_config.py 文件。
# 修改 od_users 字典参数。参考已有内容,添加更多的位置,比如:D、E、F 等od_users={"A":{"client_id":"","client_secret":"","share_path":"/","other_name":"网盘 1 区","order":1},"B":{"client_id":"","client_secret":"","share_path":"/","other_name":"网盘 2 区","order":2},"C":{"client_id":"","client_secret":"","share_path":"/","other_name":"网盘 3 区","order":3}}
解绑网盘
如果绑定了网盘想要进行解绑,或者绑定网盘出错,但是网站已经显示了这个盘符的情况下,需要解绑网盘。
可按照以下步骤操作:
1、编辑 self_config.py 文件。2、找到 od_users 字典参数。3、参数 od_users 下找到对应的盘符。4、将对应盘符的 client_id 参数和 client_secret 参数置为空值。
离线下载
1、离线下载依赖 aria2;请确保已经安装了aria2 并在后台配置了正确信息!2、离线下载支持:http(s)直链、磁力链接。3、添加任务时,一行一个下载链接。4、在哪个目录下点击离线下载按钮,最终就会上传到哪个目录下。
命令行操作
1、单文件上传
# 请确保 PyOne 源码路径正确python /root/PyOne/function.py Upload 服务器文件绝对路径 onedrive 路径 盘符
参数说明:
# 服务器文件绝对路径:服务器下存在的一个文件绝对路径。比如:/home/test.mp4。#onedrive 路径:即 onedrive 下的路径。这里分两种情况:上传后不用重命名,比如我直接上传到测试目录下,onedrive路径为:/ 测试 /。目录最后面必须带 /。上传后重命名,比如我上传到测试目录下,并重命名为 new.mp4,onedrive 路径为:/ 测试 /new.mp4。最后面不能带 /。看出区别了吗?带 / 和不带 / 的区别!# 盘符:默认为 A。如果需要上传到其他网盘,或者你修改过盘符,则修改这个盘符参数。
示例:
# 上传服务器的 /home/test.mp4 到盘符 A 的 onedrive 的测试目录下:python /root/PyOne/function.py Upload /home/test.mp4 / 测试 / A# 上传服务器的 /home/test.mp4 到盘符 A 的 onedrive 的测试目录下,并重命名为 new.mp4:python /root/PyOne/function.py Upload /home/test.mp4 / 测试 /new.mp4 A
2、上传文件夹所有文件
# 请确保 PyOne 源码路径正确python /root/PyOne/function.py UploadDir 服务器目录绝对路径 onedrive 路径 盘符
参数说明:
# 服务器目录绝对路径:服务器下存在的目录绝对路径。比如:/home/test#onedrive 路径:即 onedrive 下的路径。比如:/test/# 盘符:默认为 A。如果需要上传到其他网盘,或者你修改过盘符,则修改这个盘符参数。
示例:
# 上传服务器的 /home 下的所有文件到盘符 A 的 onedrive 的测试目录下:python /root/PyOne/function.py UploadDir /home/test / 测试 / A
3、更新缓存
全量更新(默认),即全量更新文件目录。推荐在文件目录结构发生变化的情况下才进行本操作。
# 请确保 PyOne 源码路径正确python /root/PyOne/function.py UpdateFile
增量更新,即只有当文件夹大小发生变化时才进行更新操作。推荐在文件目录结构没有发生变化的情况下进行操作。
# 请确保 PyOne 源码路径正确python /root/PyOne/function.py UpdateFile new
更新源码
#PyOne 旧版本升级到 3.0,请重装!#PyOne3.0 内小版本更新拉最新代码:git pull重新安装依赖,看是否有新增的依赖包:pip install -r requirements.txt重启网站:supervisorctl -c supervisord.conf restart pyone最好更新一下文件缓存:python function.py UpdateFile
错误指导
1、502 Bad Gateway
一般是网站没有运行导致的。在网站目录运行
supervisord -c supervisord.conf
如果运行上面的命令出现类似 Error:Another program is alright listening on a port 的错误,说明已经运行过这个命令,可以运行以下命令重启网站
supervisorctl -c supervisord.conf restart pyone
2、500 Internal Server Error
一般是因为服务器内部出现问题,可检查 Redis、MongoDB 是否安装?是否运行?
如果上诉没问题,可清空 Redis 缓存:
redis-cli # 进入 redis 命令行> FLUSHALL
如清空 Redis 缓存还有问题,可手动运行网站查看错误
supervisorctl -c supervisord.conf stop pyone && gunicorn -k eventlet -b 0:34567 run:app
然后再访问页面,查看 ssh 的错误提示。
PyOne – 基于 Python 的 onedrive 文件本地化浏览系统, 使用 MongoDB 缓存文件,其实就是 onedrive 文件管理、分享程序。
之前大鸟也分享了 CuteOne 的安装教程,所以今天顺便把 PyOne 安装教程了分享一下,大家可以根据自己的喜好选择安装。
一:简介:
github:
演示:
Wiki 地址:
二:推荐环境
- Centos7、Debian8+、Ubuntu16+(其他环境按照下面教程可能会有问题)
- Python2.7(以上系统默认均为 Python2.7)
- 需要安装 redis 5.0.3,MongoDB 4.0.5(通过宝塔安装)
安装前先把环境准备好。宝塔面板自行安装,lnmp 自行配置好,Nginx、MongoDB 和 redis 都需要安装,在软件商店里面可以搜索安装下。如图:

一键安装 PyOne
默认在 /root 目录下进行操作!
三:下载源码
复制
#ssh 连接服务器然后进入目录
cd /opt
# 下载源码
git clone
四:使用一键安装脚本
在 opt 目录下执行,如下命令。
复制
cd PyOne
bash install.sh
然后按照提示进行操作!
安装过程中会要求输入:MongoDB 端口号(27017)、Redis 端口号(6379)、Aria2 密钥、PyOne 后台密码:

安装完成之后,如图:

五:访问网站
通过上面的步骤完成安装之后,这时应该可以通过 {ip}:34567 访问你的网站了。第一次访问网站,会自动进入后台,输入后台密码。

登录之后是这样的,如图:

六:网站初始化
因为是宝塔面板安装的 MongoDB 信息和 Redis 信息,所以我们登录后台后直接提交即可,如图:

提交完成之后,就是网站的初始化了,如图:

这里就自己折腾吧,不在赘述。
七:设置域名
我们还需要设置一个域名,宝塔面板用【芳香袋里】即可,先新建站点,然后绑定域名,接着开启【芳香袋里】,如图:

访问试试,如图:

如果要开启 ssl,请先把【袋里】停掉,申请好证书自后在开启即可。不在赘述。
八:最后
整个安装过程用宝塔面板来部署的话,真的是异常简单,但是安装简单,但是配置就有点麻烦了。所以如果喜欢 Pyone 的话,可以自己去慢慢倒腾。