Rat's

PyOne:一款支持绑定多网盘的OneDrive文件本地化浏览系统
说明:之前博主介绍过一个OneDrive网盘的目录索引程序OneIndex,而且发了不少安装和使用教程了,介绍查看...
扫描右侧二维码阅读全文
15
2018/11

PyOne:一款支持绑定多网盘的OneDrive文件本地化浏览系统

说明:之前博主介绍过一个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.7RedisMongodbNginx

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

安装完成后,进入面板,点击左侧软件管理,然后安装NginxRedisMongoDb。注意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.py
cp supervisord.conf.sample supervisord.conf

如果当前不是在root目录下(本文是默认root目录下),则需要修改config.pyconfig_dir参数和supervisord.confdirectory参数为正确的目录!

#运行
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

更新源码

#PyOne旧版本升级到3.0,请重装!

#PyOne3.0内小版本更新
拉最新代码:git pull
重新安装依赖,看是否有新增的依赖包:pip install -r requirements.txt
重启网站:supervisorctl -c supervisord.conf restart pyone
最好更新一下文件缓存:python function.py UpdateFile

关于Aria2上传

看到有人需要Aria2上传脚本,博主就用程序自带的上传命令测试下,然后由于特殊原因,该脚本是不会存在了。

不过可以使用其它的Aria2上传的方法,就是借用萌咔大佬的脚本→点击查看

最后作者貌似在做离线下载功能,所以一起期待吧。

需要Office365 E3 MSDN 25的可加入萌咖杂货店QQ群购买→【点击加入
最后修改:2018 年 11 月 17 日 04 : 15 PM

发表评论

70 条评论

  1. 李渊

    手机代理后没问题,PC端打开网站变成127.0.0.1:34567无法访问,怎么处理

    1. Rat's
      @李渊

      这个问题貌似不是很清楚,没遇到过。

  2. chen

    请问博主这个配合哪个上传脚本比较好啊

    1. Rat's
      @chen

      我一直用这个:https://www.moerats.com/archives/697/。

  3. 丫丫

    AADSTS50011: No reply address is registered for the application.
    这是什么鬼

    1. 丫丫
      @丫丫

      已解决

      1. 图匪
        @丫丫

        哈哈,活捉

  4. LALALA

    哈哈,大佬竟然回复的这么快

    1. Rat's
      @LALALA

      是的,刚水文章那会都是秒回。

  5. LALALA

    大佬好厉害呀,特来观摩
    哈哈

    1. Rat's
      @LALALA

      要不是多个LA,还以为是。。

      1. 刀下的小猪
        @Rat's

        肯定以为是lala

        1. Rat's
          @刀下的小猪

          对的。

  6. Ll

    大佬,我想问一下,就是我弄成功了,但是比如我在后台修改密码,改PyOne的名字之类的,保存,他自己重启了,但是我修改的部分,并没有修改(大致是怎么修改都还原)

    1. Ll
      @Ll

      更新后好了

  7. cilone

    ip:34567能进去,填了反向代理和配置文件,但是网站地址进不去

    1. 青竹
      @cilone

      我也出现了这种情况,请问你是怎么解决的?

    2. cilone
      @cilone

      已解决

  8. 苏寅

    这个服务器过期后是不是就不能用了?
    能不能搭建到Linux桌面系统上?

    1. Rat's
      @苏寅

      是的,过期就不能用了,你自己可以试试。

  9. 苏寅

    弄完以后,进入管理员界面修改登录密码,然后会自动重启网站,但是一直在重启网站,就是重启不完,咋回事?

  10. 苏寅

    最后那个重启生效是指重启网站吗?

  11. 苏寅

    unix:///tmp/supervisor.sock no such file
    出现这个问题怎么解决?

  12. 苏寅

    弄好以后要怎么查看我自己搭建网盘上的文件?

    1. Rat's
      @苏寅

      别刷评论,你自己登录Onedrive网盘就可以看到文件,也可以通过ip访问pyone查看。

  13. 苏寅

    不能用域名/admin,只能用ip/admin

  14. 苏寅

    到后台后怎么运行python function.py UpdateFile

  15. 苏寅

    正在更新数据!如果您是网站管理员,请在后台运行命令:python function.py UpdateFile
    这个是那个后台啊,都没有提示的???

    1. Rat's
      @苏寅

      admin后台地址,多看教程,多琢磨。

      1. 苏寅
        @Rat's

        404 - 找不到檔案或目錄。
        您要尋找的資源可能已移除、名稱已變更,或暫時無法使用。
        用这个访问会报错如上错误

  16. 苏寅

    是宝塔里边那个网站域名+admin吗?

    1. Rat's
      @苏寅

      是的,你添加的域名,比如xx.com/admin

      1. 苏寅
        @Rat's

        我就是用的这个啊,可是不行啊。而且这个我添加的这个域名已经被被人注册了

    2. Rat's
      @苏寅

      是的,你添加的域名,比如xx.com/admin

      1. 苏寅
        @Rat's

        我就是用的这个不行啊,我添加上端口都不行

  17. 苏寅

    弄好了,后台地址是啥?

    1. Rat's
      @苏寅

      仔细看教程,地址后面加/admin。

      1. 苏寅
        @Rat's

        我试了,访问不了啊

  18. 苏寅

    应用注册页面到底该怎么写?
    注册完了后绑定账号一直报错!
    AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application: '66422158-fe5e-4071-a1b2-96ae77fb490a'.

    1. Rat's
      @苏寅

      多绑定几次,要是还不行就没办法了。

      1. 苏寅
        @Rat's

        是不是我应用注册界面信息填写的不对啊

        1. Rat's
          @苏寅

          这个你多试试,按理说没啥问题。

          1. 苏寅
            @Rat's

            应用注册的时候哪些信息都是填默认的吗?

  19. 苏寅

    绑定账号那里出现错误:AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application: '4791fd00-0a2a-4355-8134-152e688a9b73'.
    怎么解决?

  20. 苏寅

    gunicorn -w4 -b 0.0.0.0:34567 run:app
    这里边的34567可以随意改吗?

    1. Rat's
      @苏寅

      可以改。

  21. 苏寅

    重装了一下系统然后再装宝塔可以了。

  22. 苏寅

    可以用linux弄这个吗?

    1. Rat's
      @苏寅

      是Linux 。

  23. 苏寅

    我的服务器安装宝塔是不是没用啊,都没有界面。

    1. Rat's
      @苏寅

      大概是你没安装好。

      1. 苏寅
        @Rat's

        我的是腾讯的服务器,就只有一个小黑屏啊,看你的教程生说的还有界面,应该是在桌面版的Linux上安装的吧

        1. Rat's
          @苏寅

          用xshell软件连接vps,然后安装宝塔,接着用浏览器打开ip:8888,就是宝塔控制面板。

          1. 苏寅
            @Rat's

            vps是什么?

            1. Rat's
              @苏寅

              服务器,就好比首页的推荐贴推荐的服务器。

  24. 苏寅

    在服务器上安装宝塔显示:Pillow installation failed.怎么解决?
    服务器系统是centos7.5

    1. Rat's
      @苏寅

      安装这几个依赖先yum install python-devel zlib-devel libjpeg-turbo-devel -y

      1. 苏寅
        @Rat's

        然后当我单独安装pillow的时候显示pillow已存在“Requirement already satisfied: pillow in /usr/lib64/python3.4/site-packages (5.2.0)”

      2. 苏寅
        @Rat's

        安装完成功你说的这个后还是然后重新安装宝塔还是失败,错误提示还是那个。

        1. Rat's
          @苏寅

          那就换其它系统安装宝塔吧。

  25. 半生浮街

    怎么注册评论呀???

    1. Rat's
      @半生浮街

      你是说博客?不开放注册功能,直接评论就行。

  26. Outshine

    可以做友情链接不

    1. Rat's
      @Outshine

      目前只能添加到内页链接,如果你能接受,那就去博客链接库栏目留信息。

  27. 哈?

    坐等不带web环境的一键脚本

    1. Rat's
      @哈?

      别懒,脚本暂时不考虑。

  28. klfgf

    这个有一键脚本吗?

    1. Rat's
      @klfgf

      没有。

  29. KINO

    很棒呀!

    1. Rat's
      @KINO

      真快。