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



更新
【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/PyOne
pip install -r requirements.txt
4、开始运行
#复制配置文件cp config.py.sample config.pycp supervisord.conf.sample supervisord.conf
如果当前不是在root目录下(本文是默认root目录下),则需要修改config.py的config_dir参数和supervisord.conf的directory参数为正确的目录!
#运行gunicorn -w4 -b 0.0.0.0:34567 run:app
然后试着访问:http://ip:34567看看能正常显示,如果不能,请在宝塔的安全里开启端口。
域名设置
点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:34567,再启用反向代理即可。
然后再点击配置文件,进行如下修改:
#加上中间两句location /
{
...
proxy_buffering off;
proxy_cache off;
...
}
最后就可以进入域名打开授权页面了。


授权成功即可,首次访问,会显示登录后台,输入初始密码:PyOne后会自动跳转到绑定网盘页面。如果没有跳转到绑定网盘页面,可以按照:后台-文件管理-添加网盘进行下一步。
开机启动
网站源码下有个supervisord.conf,主要内容如下:
[program:pyone]
command = gunicorn -k eventlet -b 0.0.0.0:34567 run:app
directory = /root/PyOne
autorestart = true
主要修改两个地方:
端口号:即34567那个端口号,修改为自己选的,或者不改动
源码目录:directory修改为你选的网站目录
修改之后运行下面的命令(记得修改为正确的目录),设置开机启动:
echo "supervisord -c /root/PyOne/supervisord.conf" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
重启生效。
本次不用重启生效的方法:
supervisord -c /root/PyOne/supervisord.conf
绑定多网盘
绑定好第一个网盘之后,登录后台(/admin)-文件管理,即可看到网站顶部还有两个“添加网盘”的链接,点进去即可继续绑定更多网盘。
注意:为确保可以正确绑定网盘,请开一个隐私窗口或者清除cookies后再绑定新网盘!
目前默认是只能绑定3个网盘,如果你需要绑定更多的网盘,可以编辑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、编辑config.py文件。
2、找到od_users字典参数。
3、参数od_users下找到对应的盘符。
4、将对应盘符的client_id参数和client_secret参数置为空值。
命令行操作
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
源码" data-unique="更新
源码" style="color: rgb(85, 85, 85); font-family: "microsoft yahei", "helvetica neue", Helvetica, Arial, sans-serif; font-size: 15px;">
#PyOne旧版本升级到3.0,请重装!#PyOne3.0内小版本更新
拉最新代码:git pull重新安装依赖,看是否有新增的依赖包:pip install -r requirements.txt重启网站:supervisorctl -c supervisord.conf restart pyone最好更新一下文件缓存:python function.py UpdateFile
看到有人需要Aria2上传脚本,博主就用程序自带的上传命令测试下,然后由于特殊原因,该脚本是不会存在了。
不过可以使用其它的Aria2上传的方法,就是借用萌咔大佬的脚本
最后作者貌似在做离线下载功能,所以一起期待吧。
最后于 2019-3-6
被管理员编辑
,原因:
TAGS OneDrive 开源项目 PyOne