- PyOne_Mongo和PyOne除了缓存机制不同之外,其他功能都一样;PyOne_Mongo在onedrive上文件较多时表现较优异,如果你的onedrive文件不多,直接用PyOne就好了
- 写PyOne更多的是为了自己的个性化需求,不具有通用性,这个版本基本完全照抄了oneindex的功能
- 因为是为了自己的个性化需求,因此PyOne不会经常更新,建议使用:oneindex
- PyOne适合Python程序猿进行二开
- 世纪互联版
- onedrive商业版
- onedrive教育版
- linux环境
- Python2.7
- 需要安装redis
-
需要自己注册Azure directory应用
- 世纪互联版注册地址:https://portal.azure.cn/?whr=azure.com#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
- 国际版注册地址:https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredApps
注册时,登录url设置成你的域名
- 修改config.py的client_id值为应用程序 ID
- 修改config.py的redirect_uri值为刚才设置的域名
注册后,同一个页面,点“设置”
-
所需权限
- Windows Azure Active Directory - 委派权限 -Sign in and read user profile (默认值)
- Office 365 SharePoint Online - 委派权限 - Read user files 和 Read and write user files (别选错,默认倒二、倒三位置)
-
密钥
- 添加密钥,到期时间选“1年内”
- 保存后保存好密钥,修改config.py的client_secret值为密钥
-
修改config.py的config_dir值为源码所在目录下的data文件夹
-
修改config.py的share_path值为你要分享的onedrive文件夹
-
修改config.py的od_type值为你的onedrive类型:
onedrive
适合国际版和教育版,onedrive_21v
适合世纪互联版 -
如果你的是世纪互联版,提前修改function.py的app_url值为你的onedrive链接,比如:
https://your-my.sharepoing.cn/
,最后必须带'/' -
config.py的allow_site值设置允许调用的域名
- 安装MongoDB,参考Python+Centos7下安装mongodb&使用mongo
- 首先将源码放到服务器某个目录下,假设当前网站目录是:/root/pyone
- 安装依赖环境:wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py && pip install -r requirement.txt
- 配置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;
}
- 运行:
- 源码目录下运行: gunicorn -w4 -b 0:34567 run:app
- 授权:
- 访问你的域名,然后就可以去授权onedrive的操作了
-
配置开机启动(centos)
- 修改supervisord.conf,将directory修改为源码所在目录
- 运行:
echo "supervisord -c 源码目录/supervisord.conf" >> /etc/rc.d/rc.local
-
上传一个文件:
python function.py Upload 本地文件路径 远程目录
比如:python function.py Upload /root/test.txt share
即把本地的test/txt文件上传到onedrive的share目录
- 上传本地目录:
python function.py UploadDir 本地目录 远程目录
比如:python function.py UploadDir /root/video video
即本本地的video目录下的所有文件上传到onedrive的video目录
- 更新文件
- 手动更新:
python function.py UpdateFile
- 定时更新:配置定时任务,添加:
0 0 * * * python /root/pyone/function UpdateFile
(每天更新一次)
- 手动更新:
点击链接加入群聊【站长技术交流】:https://jq.qq.com/?_wv=1027&k=50L3j17
Abbey最近准备做微信分享视频流量,有流量渠道的大佬欢迎合作,平台、视频都有了,就差流量