Rat's

CuteOne:一款基于Python3的OneDrive多网盘挂载程序,带会员/同步等功能
说明:现在OneDrive挂载目录程序越来越多了,之前水了很多了,包括PyOne、OneIndex、OLAINDE...
扫描右侧二维码阅读全文
13
2019/04

CuteOne:一款基于Python3的OneDrive多网盘挂载程序,带会员/同步等功能

说明:现在OneDrive挂载目录程序越来越多了,之前水了很多了,包括PyOneOneIndexOLAINDEXOneList,近期又出现了个CuteOne,一个基于Python3OneDrive多网盘挂载程序,功能的话,看起来还是挺不错的,支持多盘负载、在线查看、在线上传、下载、多网盘同步、主从同步、在线分享、文件夹权限管理、会员功能、等级制度、付费查看、密码查看、支付模块、主题切换、极速缓存。至于体验的话,可能暂时会差点,毕竟才出来不到一个月的项目,不过看得出来作者也是有理想的人,所以会长期维护更新,让其越来越好,这里就大概介绍下。

截图

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述

功能简述

#驱动列表
其实驱动列表你们把他当成一个分类即可,可是为啥里面可以添加很多网盘呢?
那么重点来了,因为有负载切换的功能,当你一个网盘很多人在看这个网盘的同一个视频
可能会变慢,我猜的; 所以可以切换到另外一个网盘里面的相同资源看,实现切换线路;
然后这么设计是也是为了资源备份用的,意思就是这个驱动列表下的所有网盘内容需要保持一致;
如果不一致,那么就没办法切换负载。

#主从备份
主从备份的功能就是给驱动下的所有网盘进行同步,但是前提是驱动下只能有一个主盘,别的都是从盘;
因为主从备份是拉取主盘的内容,备份到从盘里的; 所以你们可以在主盘里面看到上传按钮,而从盘没有;
这个功能是预防你们网盘被封,然后有备份盘当做备用;这也是一个卖资源盘的办法。

#权限管理
权限管理其实就是给文件夹设置密码啦;
然后你们可以看到还有群组管理,这个是干啥的呢?嗯,就是设置VIP的意思,就是这个群组可以免密查看你加密的文件路径。

#会员管理
会员管理顾名思义啦,他还有一个功能是和权限管理的群组是挂钩的,意思就是会员你可以给他分配群组,
也就是所谓的VIP制度,让会员可以免密查看一些加密的文件夹。

#文件管理
因为有了会员,所以想给会员也能上传文件,然后分享,所以出了这个会员的文件管理,这里可以单独给会员设置存储盘,会员上传的文件就会在这个里面。

#任务管理
这个就是你在驱动列表的网盘里面上传了文件,这里可以看到那个文件当前的同步状态而已。

#开始同步和更新缓存
开始同步只有你点击管理了之后 进入驱动下的网盘列表,你才看到这个按钮,因为他是用来主从备份的,你不需要主从备份,你就别按他;

更新缓存,如果你不更新缓存,你会发现你前端没有文件,这个其实就是拉取一下最新的数据而已。

#文件地址的缓存周期
OneDrive的文件地址是有时效性的,大概五分钟这样吧,所以我这边使用里类推模式来更新地址缓存,什么是类推,就是当这个文件五分钟内有人访问一次,
数据库就会是最新文件的地址,以此类推,如果文件热度很高,地址是一直是最新的,如果热度低,只要有一个人访问,地址就会缓存到最新的到数据库。

安装

Github地址:https://github.com/Hackxiaoya/CuteOne

环境需求:Python3Mysql >= 5.5MongoDBNginx/Apache

1、安装宝塔

#CentOS系统
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
#Ubuntu系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
#Debian系统
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh

安装完成后,进入面板,点击左侧软件管理,然后安装MysqlMongodbNginx。且Debian安装MongoDb之前还需要使用命令apt install sudo,不然可能存在MongoDb启动不了的情况。

安装完成后再点击左侧数据库-添加数据库,设置好Mysql数据库信息。

2、安装Python3

#CentOS系统
wget https://www.moerats.com/usr/shell/Python3/CentOS_Python3.6.sh && sh CentOS_Python3.6.sh
#Debian系统
wget https://www.moerats.com/usr/shell/Python3/Debian_Python3.6.sh && sh Debian_Python3.6.sh
#Ubuntu系统
apt update
apt install python3-pip python3-setuptools python3-dev python3-wheel build-essential -y

3、安装依赖

wget https://github.com/Hackxiaoya/CuteOne/archive/dev.zip  
unzip dev.zip
mv CuteOne-dev CuteOne
cd CuteOne
pip3 install -r requirements.txt

4、运行程序
这里没用作者提供的uwsgi方式运行,换成了gunicorn,使用命令:

pip3 install gunicorn
gunicorn app:app -b 0.0.0.0:8000

然后再访问http://ip:8000/install进行安装。如果打不开该地址的,点击宝塔面板左侧安全-放行8000端口。
请输入图片描述
记得安装的时候MongoDB默认没有设置用户名密码,所以填写Mongodb的时候,直接留空下一步。

安装完成后,使用Ctrl+C断开运行,再使用命令后台运行:

gunicorn app:app -b 127.0.0.1:8000 -D

接下来我们需要使用域名反代并添加SSL,不然访问会有点问题。

5、域名反代
点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8000,再启用反向代理,然后点击SSL,申请免费的Let's Encrypt证书,并强制HTTPS

接下来再点击配置文件,进行如下修改:

#加上中间三句
location / 
    {
        ...
        
        proxy_buffering off;
        proxy_cache off;
        proxy_set_header X-Forwarded-Proto $scheme;
                
        ...
    }

此时就可以直接通过域名访问了,首先前台是访问不了的,需要先访问https://domain.com/admin,然后添加驱动,添加的时候设置成默认主页,不然首页打开会有问题。
请输入图片描述
再点击驱动管理-添加网盘。
请输入图片描述
填入相关信息绑定网盘,注意code那里填code=&之间的代码。
请输入图片描述
再点击驱动管理的更新缓存即可,然后就可以访问首页了。

这里要注意的是,一般用户注册的时候,上传文件是会有问题的,管理员需要在CuteOne后台,编辑用户,将用户的用户文件盘改成添加网盘的ID即可,这样用户上传文件后,会保存在相应的OneDrive网盘,并且保存的文件夹以用户ID命名。

最后作者正在开发一些该程序的模块和插件,目前开发了影视模块、图床模块、迅雷盒子自动推送插件,如果有其它意见的可以直接去Github提问,地址→传送门

Vultr新用户注册送100美元/16个机房按小时计费,支持支付宝,【点击查看】。
最后修改:2019 年 05 月 31 日 04 : 22 PM

发表评论 取消回复

160 条评论

  1. 阿基

    看了下作者的github 说明,从3.x版本开始,好像删除了那些模块功能,只剩下最基础的 “网盘挂载”功能?

    1. Rat's
      @阿基

      3.x我还没用过,具体功能还不是很了解

  2. vga

    搭建好了后视频全部加载失败呢

    1. Rat's
      @vga

      会不会是api被限制了

      1. vga
        @Rat's

        我用onedrive官网可以正常上传播放

        1. Rat's
          @vga

          官网肯定是可以看的,不需要调用api,你试试pyone?直接跑一键脚本就可以了,https://www.moerats.com/archives/806/

          1. vga
            @Rat's

            试过了 也是不能播放视频 邪门 不知道问题出在哪

            1. Rat's
              @vga

              应该是api被限制啥的,或者你用其它账号试试?

  3. 路人乙

    大佬,请问不需要用SSL应该修改哪里?部署环境是用内网机器跑,用不上域名。求大佬解答, 谢谢~

    1. Rat's
      @路人乙

      这个好像需要ssl才能加载js、css等资源,不然前端乱码。

      1. 路人乙
        @Rat's

        对....比较尴尬...大佬,请问有方法可以解决吗?....

        1. Rat's
          @路人乙

          这个还么仔细看过,试试修改源码里的https地址?

  4. nice,正常使用,就是作者方法安装插件,重启web后还是404,

    1. Rat's
      @凯

      这个还是配合官方wiki解决下,https://wiki.cuteone.cn

  5. 小呆呆

    好像作者出了一个Dev的分支,然后怎么拉取源码,还有,现在重装还需要重新清盘再安装么

    1. Rat's
      @小呆呆

      dev好像是3.x版本,拉取源码直接下载zip压缩包文件就行了,重装的话,版本不一样,肯定程序也要重新安装,我晚上更新下吧

  6. yzddhr

    本来pyone运行正常。尝试安装cuteone后iphone无法播放视频,于是换回pyone,发现无法启动 ,报错如下:
    Traceback (most recent call last):
    File "/usr/local/lib/python3.5/dist-packages/gunicorn/arbiter.py", line 583, in spawn_worker

    worker.init_process()

    File "/usr/local/lib/python3.5/dist-packages/gunicorn/workers/base.py", line 129, in init_process

    self.load_wsgi()

    File "/usr/local/lib/python3.5/dist-packages/gunicorn/workers/base.py", line 138, in load_wsgi

    self.wsgi = self.app.wsgi()

    File "/usr/local/lib/python3.5/dist-packages/gunicorn/app/base.py", line 67, in wsgi

    self.callable = self.load()

    File "/usr/local/lib/python3.5/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load

    return self.load_wsgiapp()

    File "/usr/local/lib/python3.5/dist-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp

    return util.import_app(self.app_uri)

    File "/usr/local/lib/python3.5/dist-packages/gunicorn/util.py", line 350, in import_app

    __import__(module)

    File "/home/yzddhr/PyOne/run.py", line 2, in <module>

    import eventlet

    ImportError: No module named 'eventlet'
    一开始,自动在Python2.7的dist里面找,现在莫名其妙变成Python3.5了,如何修复?
    补充:
    root@instance-o9gyuo73:/home/yzddhr/PyOne# python -V
    Python 2.7.12
    root@instance-o9gyuo73:/home/yzddhr/PyOne# python3 -V
    Python 3.5.2

    1. Rat's
      @yzddhr

      这个问题,之前有个人就遇到过,不过我没研究,你先看下默认的python本,python -V,如果是python 3的话,试试这个命令:
      rm -rf /usr/bin/python
      ln -s /usr/bin/python2.7 /usr/bin/python

  7. kedyao

    新版2.0 gunicorn不能启动报错

    1. Rat's
      @kedyao

      2.0我还没试过,如果不行的话,可以直接使用作者提供的运行方法nohup uwsgi --ini uwsgi.ini &

  8. 蓝爵薇

    貌似python3会替代python2导致宝塔面板启动不了

    1. Rat's
      @蓝爵薇

      这个之前没咋遇到过,要是遇到的话,解决方法看是不是这样:
      rm -rf /usr/bin/python
      ln -s /usr/bin/python2.7 /usr/bin/python

  9. os

    怎么把本地机器盘当个主盘,然后时时同步到网盘里?

    1. Rat's
      @os

      你是说电脑上的硬盘?

      1. os
        @Rat's

        对的。电脑上的硬盘

        1. Rat's
          @os

          试试配合RaiDrive,地址:https://www.moerats.com/archives/767/

          1. os
            @Rat's

            这个可以自动的同步我本地的某个文件夹吗?

  10. Clown

    接下来再点击配置文件,进行如下修改:

    加上中间三句

    location /

    { ... proxy_buffering off; proxy_cache off; proxy_set_header X-Forwarded-Proto $scheme; ... }

    大佬,这个怎么添加,我加到配置文件里面不对呀。会提示出错。

    1. Rat's
      @Clown

      点击域名设置,然后有个配置文件选项,加到相应的位置就可以了