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、安装依赖

git clone https://github.com/Hackxiaoya/CuteOne.git  
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命名。

最后该程序可能有些功能还不是很完善,如果对这个有兴趣的,可以去骚扰下作者,给点功能建议是可以的。

Vultr注册就送$50,可开日本/新加坡等机房,【点击注册】。
最后修改:2019 年 04 月 16 日 12 : 47 PM
如果觉得我的文章对你有用,请随意打赏。

发表评论

68 条评论

  1. TommyYin

    尝试了一下,好像多网盘自动同步的功能不工作,显示正在同步,但是等了一天,没有任何变化

  2. muyigege

    点击登录没反应.....

    1. Rat's
      @muyigege

      第一次运行的时候吗?那里需要断开一下,再重新运行就好了。

  3. sxfd

    添加不了云盘,显示Error怎么回事?

    1. Rat's
      @sxfd

      添加网盘那里显示Error的话,检查下code值,为=和&直接的值,如果还不行,那重新申请应用机密,然后再获取code,一般多试几次就好了

  4. ccccyu

    debian宝塔用脚本安装Py3完成的时候,得把宝塔默认的py2.7改成py3才能运行。
    rm -f /usr/bin/python
    ln -s /usr/local/bin/python3 /usr/bin/python

    1. Rat's
      @ccccyu

      好的,我之前测试好像没这个问题,如果有那可以参考你这个解决方法。

  5. az

    现阶段这几个哪种好点?都没接触过

    1. Rat's
      @az

      这个只能自己慢慢体验了。如果挂载多网盘的话就pyone、只是单纯做下载站就onelist

  6. 梓瑜

    请问code在哪获取,没懂。。。

    1. 梓瑜
      @梓瑜

      已解决。。。。

  7. Chauncey09

    博主,阿里云香港主机CentOS 7.5安装时出现错误,执行pip3 install -r requirements.txt时,提示如下错误,请问如何解决?
    [root@izj6cg44yo05yox7howqbgz CuteOne]# pip3 install -r requirements.txt
    Looking in indexes: http://mirrors.aliyun.com/pypi/simple/
    Collecting blueprint==3.4.2 (from -r requirements.txt (line 1))
    HTTP error 502 while getting http://mirrors.aliyun.com/pypi/packages/57/41/36f4925ed261d3720e44cc7a18c95462aeaa4f3e067aac1bb5dd7c2151a8/blueprint-3.4.2.tar.gz#md5=220e61da52cd6ffd7a9ccb26ded57ee4 (from http://mirrors.aliyun.com/pypi/simple/blueprint/)
    Could not install requirement blueprint==3.4.2 from http://mirrors.aliyun.com/pypi/packages/57/41/36f4925ed261d3720e44cc7a18c95462aeaa4f3e067aac1bb5dd7c2151a8/blueprint-3.4.2.tar.gz#md5=220e61da52cd6ffd7a9ccb26ded57ee4 (from -r requirements.txt (line 1)) because of error 502 Server Error: Bad Gateway for url: http://mirrors.aliyun.com/pypi/packages/57/41/36f4925ed261d3720e44cc7a18c95462aeaa4f3e067aac1bb5dd7c2151a8/blueprint-3.4.2.tar.gz
    Could not install requirement blueprint==3.4.2 from http://mirrors.aliyun.com/pypi/packages/57/41/36f4925ed261d3720e44cc7a18c95462aeaa4f3e067aac1bb5dd7c2151a8/blueprint-3.4.2.tar.gz#md5=220e61da52cd6ffd7a9ccb26ded57ee4 (from -r requirements.txt (line 1)) because of HTTP error 502 Server Error: Bad Gateway for url: http://mirrors.aliyun.com/pypi/packages/57/41/36f4925ed261d3720e44cc7a18c95462aeaa4f3e067aac1bb5dd7c2151a8/blueprint-3.4.2.tar.gz for URL http://mirrors.aliyun.com/pypi/packages/57/41/36f4925ed261d3720e44cc7a18c95462aeaa4f3e067aac1bb5dd7c2151a8/blueprint-3.4.2.tar.gz#md5=220e61da52cd6ffd7a9ccb26ded57ee4 (from http://mirrors.aliyun.com/pypi/simple/blueprint/)

    1. Rat's
      @Chauncey09

      重新运行一下这个命令看看

      1. Chauncey09
        @Rat's

        再次运行了 还是一样的结果,不知道为啥,后来放弃了,换了debian系统安装,现在能安装成功,但是在驱动管理那里,添加网盘,更新缓存后,首页依然无法打开,提示内部错误,感觉Bug还是很多。。

        1. Rat's
          @Chauncey09

          因为地址502了,获取不到包;你说的这里应该没BUG,你可以看下常见问题列表:https://wiki.cuteone.cn/cuteone-chang-jian-wen-ti

          1. Chauncey09
            @Rat's

            已经解决,是没有设置默认主页的原因,大佬可以在上面的教程中补充一下,添加驱动的时候一定有一个要选择默认主页

            1. Rat's
              @Chauncey09

              好像是有这么回事,我补充下

  8. Javen73

    最后访问Internal Server Error 。。。大佬出docker吧

    1. Rat's
      @Javen73

      是直接访问的首页出现的?

      1. Javen73
        @Rat's

        https://wx4.sinaimg.cn/large/006Es6iUly1g2619sh7ssj30nr035aa7.jpg

        应该是install的页面填完之后。这里报的错的原因吧。

        看不懂!

        1. Rat's
          @Javen73

          这个错误不影响,直接Ctrl+C断开,然后用我给的后台命令运行,你这个问题需要先添加一个驱动,然后设置为首页就消失了,然后再绑定网盘

      2. mick
        @Rat's

        是的 什么情况

        1. Rat's
          @mick

          看我上面的回复吧

  9. sky

    到后台运行那里打开不了网站了 拒绝链接

    1. Rat's
      @sky

      用ip打开的么?那里需要域名反代才能打开。

      1. sky
        @Rat's

        502

        1. Rat's
          @sky

          那就是没启动成功,你后台运行那一步,去掉-D参数,然后看下错误

  10. fly

    博主有没有定时自动同步文件到本地的教程~定时 同步到onedrive不好使……

    1. Rat's
      @fly

      可以在博客自己翻下,有VPS和OneDrive之间实时同步的教程。

  11. fish

    在后台添加网盘时,填写完后点击确定报出error的错误,是哪配置错了吗

    1. Rat's
      @fish

      code正确么?只需要code=到&之间的代码

  12. simplove

    开机启动如何搞呀,老大

    1. Rat's
      @simplove

      最简单的方法就是rc.local开机自启,可以百度下用法

  13. hihi

    试了现在这个程序,结果装完原先的pyone 不能用了 天哪

    博主可以帮忙看看是吗?不知道是不是冲突。

    1. Rat's
      @hihi

      得看具体日志才行

      1. hihi
        @Rat's

        排查了好久发现gunicorn有问题,
        安装pyone的时候用的是py2.7 ,CuteOne 是py3.6。

        使用上面的脚本之后,gunicorn会默认使用3.6版本的。之后就各种报错。。我直接删掉。/usr/local/bin/gunicorn

        软链py2.7 版本的/usr/bin/gunicorn 版本的过去就可以了。具体情况还要再排查下。楼主看看这个问题是不是全部都有

      2. hihi
        @Rat's

        我评论贴了图床的,发出来就被吞了,怎么办啊楼主。网上查不到解决办法。。

      3. hihi
        @Rat's

        图片地址ww1.sinaimg.cn/large/dcf90e3bgy1g22e845j12j20n50e4aca.jpg

        1. Rat's
          @hihi

          貌似是缺少个模块,你使用pip install eventlet试试

          1. hihi
            @Rat's

            DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7.
            Requirement already satisfied: eventlet in /usr/lib/python2.7/site-packages (0.24.1)
            Requirement already satisfied: monotonic>=1.4 in /usr/lib/python2.7/site-packages (from eventlet) (1.5)
            Requirement already satisfied: six>=1.10.0 in /usr/lib/python2.7/site-packages (from eventlet) (1.12.0)
            Requirement already satisfied: dnspython>=1.15.0 in /usr/lib/python2.7/site-packages (from eventlet) (1.16.0)
            Requirement already satisfied: greenlet>=0.3 in /usr/lib64/python2.7/site-packages (from eventlet) (0.4.15)
            Requirement already satisfied: enum34; python_version < "3.4" in /usr/lib/python2.7/site-packages (from eventlet) (1.1.6)

            已经是安装过的了,感觉可能是python3的锅。您这边一键脚本有办法完美卸载吗? 我想全部推倒重新试下

            1. Rat's
              @hihi

              完美卸载貌似有点麻烦,安装了很多依赖,只能删掉python3文件夹了,which python3,看下在哪个目录,然后删掉

  14. 小柴

    我打开了一下,看视频,感觉速度挺快的,不知道是不是多久网盘的速度!现在一个网盘的速度,也就10M 左右,但是这个是30-40M,那速度用来看视频方便多了,不占用硬盘这个才好!

  15. sky

    打开安装页面 内部服务器错误

    1. Rat's
      @sky

      我记得刚开始打开首页会出现这个问题,需要在地址后面加一个/install才行

  16. arrowarrow

    不想装宝塔debian可以装吗

    1. Rat's
      @arrowarrow

      都可以,你想手动安装?

      1. arrowarrow
        @Rat's

        是,什么时间水一篇debian手动安装啊

        1. Rat's
          @arrowarrow

          这个不水,最多水docker,手动安装可以在博客找下mysql和mongodb的手动安装方法

  17. lala

    使用了,不太舒服,多用户会员对我来说用处不大

    1. Rat's
      @lala

      哪个舒服就用哪个

  18. lala

    说不搞,结果已经搭建成功了

  19. 缙哥哥

    这个是真牛逼,我要玩玩,免得浪费了手里头的几个OneDrive

  20. rua

    这个Cuteone确实在变得越来越好,几十star的时候firefox播放视频还不支持全屏,现在没问题了

    1. Rat's
      @rua

      是的,先慢慢观望再说

  21. cycle

    完成了第三步,且一切正常,但是在第四步的时候出了问题,
    没有安装面板,手动设置NGINX进行反代,结果访问https:/my_/domain.com/admin 页面的时候浏览器会自动跳转到127.0.0.1:8000,这个是什么地方出问题了?

    1. Rat's
      @cycle

      反代配置有问题

  22. lala

    看得挺心动,我pyone才玩几天又出来个新的,还是等段时间再搞算了

  23. Jays

    感觉 onedrive快要被玩坏了~~~唉

    1. Rat's
      @Jays

      早被玩坏了

  24. fireka

    什么时候来个docker版。。

    1. Rat's
      @fireka

      这个看情况,需求多才来个docker,不多就算了

      1. fireka
        @Rat's

        这个安装的时候很多问题..pip版本,pythone版本什么的...

        1. Rat's
          @fireka

          直接用我给个一健脚本安装python3,应该问题不大。

  25. mua

    多网盘负载均衡的话,那么不是只能5t吗……全部都是一样的文件

    1. Rat's
      @mua

      一个驱动里主从同步等于是5T,不过可以添加其它驱动来增加总量。

  26. sword

    Mysql >= 5.5?终于改了?

    还有我自建邮箱,显示邮箱不合法sword@sword.studio

    1. Rat's
      @sword

      对,不改的话,小内存只能手动安装mysql了。

      1. lala
        @Rat's

        新版mysql对小鸡太不友好了