PyOne:更好用的onedrive网盘工具

最近在loc看到Abbey大佬展示的onedrive网盘工具——PyOne,美观实用,就跟着教程搭建了一下。分享、记录一下过程。

PyOne

 

由于原教程已经十分详细,我这里也只是做一个补充。


使用此工具的前提是拥有onedrive的商业版、教育版、世纪互联版。可参考如有乐享的教程,已经十分详细:

申请OneDrive 5T 网盘便民方法和邮箱

 


PyOne介绍

1、onedrive列表程序,可用于更好的分享文件
2、基于Flask开发,Python是最好的语言  demo展示:http://3pp.me

安装前提

1、只支持onedrive商业版、教育版、世纪互联版,个人版理论上不支持
2、涉及的东西较多,不熟悉linux操作但是想安装的,多操作几遍

安装教程

1. 准备工作(原教程用的是宝塔来搭建环境,但是我不喜欢宝塔,所以自己动手了

环境要求:centos7+python2.7
安装:redis、mongodb、nginx

源码下载到本地:

yum -y install git
git clone https://github.com/abbeyokgo/PyOne
chmod 775 -R 你的路径/PyOne

先是搭建环境:
安装Python(我用的centos7里面其实自带了python)

yum -y install python

安装redis

yum -y install redis

安装mongodb

vi /etc/yum.repos.d/mongodb-org-3.6.repo
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
yum -y install mongodb-org

安装nginx

yum -y install nginx
vim /etc/nginx/nginx.conf         //设置网站
service nginx restart

关闭selinux

vim /etc/selinux/config

设置:

SELINUX=disabled

然后重启系统让selinux彻底关闭:

reboot

重启后,记得启动各种服务

service mongod start
service redis start
service nginx start

 

2.申请onedrive的授权信息(注册Azure directory应用)

注册AD应用,简单来说就是注册一个api,然后才能通过api获取文件列表、文件下载直链

世纪互联版注册地址:https://portal.azure.cn/?whr=azure.com#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

国际版注册地址:https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps

 

图文教程(图片照搬Abbey大佬的:):

注册应用

PyOne

PyOne

 

添加权限
Windows Azure Active Directory – 委派权限 -Sign in and read user profile (默认值)
Office 365 SharePoint Online – 委派权限 – Read user files 和 Read and write user files (别选错)

PyOne

PyOne

 

添加秘钥
添加密钥,到期时间选“1年内”
保存后保存好密钥,下面会用到

PyOne

 

3.配置PyOne

修改config.py的client_id值为应用程序 ID(注意!不是对象ID)
修改config.py的redirect_uri值为刚才设置的域名
修改config.py的client_secret值为密钥(前面添加的密钥)
修改config.py的config_dir值为源码所在目录下的data文件夹绝对路径(假如源码放在/root目录下,则这里修改为:/root/PyOne_Mongo/data)
修改config.py的share_path值为你要分享的onedrive文件夹,如果是分享全部的onedrive文件,则为/
修改config.py的od_type值为你的onedrive类型:
国际版:bussiness
世纪互联版:bussiness_21v
修改config.py的app_url值为你的onedrive链接,比如:https://your-my.sharepoing.cn/

最后必须带”/”,如果不知道你的onedrive个人域名,登录一下你的onedrive看一下域名就知道了

修改config.py的allow_site值设置允许调用的域名,起到防盗链的功能

4.开始安装

安装依赖环境:

进入PyOne文件夹进行安装

wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py && pip install -r requirements.txt

试运行,在源码根目录下运行

gunicorn -w4 -b 0.0.0.0:34567 run:app

然后试着访问:http://ip:34567 看看能正常显示?如果不能,请打开对应的端口,还不行请看错误内容

 

修改nginx配置

上面虽然可以运行了,但是因为不是通过域名访问的,所以无法正常授权,接着修改nginx配置,确保可以通过域名访问。

假设你已经将域名解析到你的服务器了,只需要修改nginx配置

server
{
    listen 80;
    server_name 你的域名;
        location / {
        proxy_pass http://127.0.0.1:34567;
        proxy_redirect off;
        proxy_set_header Host $host:80;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    access_log  /www/wwwlogs/pyone.log;
}

保存、重启之后,应该就可以通过域名访问了

 

授权

紧接着上一步,就能直接授权了

PyOne

 

PyOne

 

PyOne

如果授权出错,一般重建一个AD应用就可以解决

授权成功后会提示更新数据,稍等一会就能直接通过域名访问PyOne了!

 

常用操作命令:

更新onedrive全部文件

python function.py UpdateFile

 

5.配置开机启动

网站源码下有个supervisord.conf,主要内容如下:

[program:pyone]
command = gunicorn -k gevent -w4 -t 600 -b 0.0.0.0:34567 run:app
directory = /root/pyone
autorestart = true

主要修改两个地方:

1、端口号:即34567那个端口号,修改为自己选的,或者不改动
2、源码目录:directory修改为你选的网站目录

修改之后运行下面的命令,设置开机启动

echo "supervisord -c 源码目录/supervisord.conf" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

重启生效。

本次不用重启生效的方法:

supervisord -c 源码目录/supervisord.conf

 

将PyOne放到后台运行可参考之前的文章:

Linux scp 设置后台运行(nohup)

 

更多高级的操作请看:

https://abbeyok.com/2018/08/16/pyone-onedrive-part2/

原文链接:https://abbeyok.com/2018/08/16/pyone-onedrive-part1/

打赏
欢迎转载,请注明出处:轻时代 » PyOne:更好用的onedrive网盘工具

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

打赏一下作者,鼓励他发表更多的精彩文章

支付宝扫一扫打赏

微信扫一扫打赏