使用OneList挂载Onedriver for business

                           
2020年01月20日

学校提供了免费的office365,包含Onedrive网盘(1T)。

由于只能给校内有账号的人共享文件,而申请使用的又不多,所以一直没有使用这个账号。

今天在网上看到一篇教程中说可以挂载到网站上做共享,所以就尝试挂载,效果还不错。

官方链接:Office365服务

网页登录地址:https://portal.partner.microsoftonline.cn/Home

原项目地址:https://github.com/MoeClub/OneList/tree/master/Rewrite

以世纪互联Onedriver for business为例,说明具体挂载步骤

【安装依赖】

这部可以先跳过,如果程序无法正常运行再回来看。

CenOS 7系统

#安装EPEL
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
#安装Python3
yum install python36 git -y
#配置Python3软链接(出错的话可忽略)
ln -s /usr/bin/python3.6 /usr/bin/python3
#安装pip3
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py

Debian/Ubuntu系统:
#安装pip3
apt update
apt install python3-pip git -y

1、打开这个链接,中国版(世纪互联),登陆你的账号,请求征得许可,点接受。

然后复制浏览器地址栏的网址,这个地址成为授权地址。

【注意】需要全部复制,包含http://localhost及以后所有。

2、下载OneList并授权

#新建并进入OneList目录

mkdir /www/wwwroot/OneList && cd $_

#64位系统下载,请解压后上传服务器

wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/amd64/linux/OneList

#32位系统下载,请解压后上传服务器

wget https://raw.githubusercontent.com/MoeClub/OneList//master/Rewrite/i386/linux/OneList

#arm架构下载,请解压后上传服务器

wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/arm/linux/OneList

#给予权限

chmod +x OneList

3、生成配置文件

#国际版,将url换成你上面复制的授权地址。

./OneList -a "url" -s "/onedrive01"

#个人版(家庭版),将url换成你上面复制的授权地址。

./OneList -ms -a "url" -s "/onedrive02"

#中国版(世纪互联),将url换成你上面复制的授权地址。

./OneList -cn -a "url" -s "/onedrive03"

提示Success! Add config. '/path/to/config.json'信息,则添加成功。

【温馨提示】/onedrive01为地址后缀,比如https://lengchangying.cn/onedrive01,如果只用一个网盘,/onedrive01可改为/,则地址为https://lengchangying.cn,其余同理。

【温馨提示】地址后缀填错了的,可以稍后在配置文件中修改。

【注意】授权url地址只能用一次,超过需要重新授权。

【注意】命令中的/onedrive01参数为指定网盘地址后缀,比如http://domain.com/onedrive01。

【注意】授权多个网盘的话,重复授权多次即可,参数均会添加到一个配置文件,且后缀不能重复。

【注意】挂载多个盘符的时候,SubPath参数请不要为/,单个网盘建议为/。

默认的配置文件路径为/www/wwwroot/config.json,以下为参数详解,可自行修改。

// 如果是家庭版或者个人免费版, 此项应为 true。

"MSAccount": false,

// 如果是中国版(世纪互联), 此项应为 true。

"MainLand": false,

// 授权令牌

"RefreshToken": "1234564567890ABCDEF",

// 单配置文件中,此项要唯一,将此OneDrive中设置为RootPath目录映射在http://127.0.0.1:5288/onedrive 下。

// (只推荐一个盘位的时候使用根目录"/")

"SubPath": "/onedrive",

// 读取OneDrive的某个目录作为根目录.(支持根目录"/")

"RootPath": "/Test",

// 隐藏OneDrive目录中的文件夹和文件, 条目间使用 "|" 分割 (跳过缓存设置的条目)

"HidePath": "/Test/Obj01|/Test/Obj02",

// 使用用户名和密码加密OneDrive目录,目录和用户名密码间使用 "?" 分割,用户名密码使用 ":" 分割,条目间使用 "|" 分割,无效条目将跳过。

"AuthPath": "/Test/Auth01?user01:pwd01|/Test/Auth02?user02:pwd02",

// 缓存刷新间隔(所有项目中的刷新时间取最小值为有效刷新间隔)

"RefreshInterval": 900

4、运行OneList

#下载index.html,与config.json同目录,即本文默认的/www/wwwroot

下载地址,请解压后上传服务器。

wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/index.html -P /opt/OneList

#监听8000地址,自行修改

/www/wwwroot//OneList/OneList -bind 0.0.0.0 -port 3000

【问题】

访问网站时,出现No Found,ssh出现以下代码,[2020/01/20 17:15:57.496] [119.115.204.149] URL[200]:/onedrive03 Time:486.931µs。

【解决方法】

修改config.json中的目录为二级目录,问题解决。

例如Onedrive中的目录为"/A/B"

则修改RootPath为"RootPath": "/A/B",

在实际测试中,100M联通光纤,几乎能跑满。

【后台运行】

生成运行日志

nohup /www/wwwroot/OneList/OneList -bind 0.0.0.0 -port 8887 > myout.file 2>&1 &

不生成运行日志

nohup /www/wwwroot/OneList/OneList -bind 0.0.0.0 -port 8887 >/dev/null 2>&1 &

当返回pid则程序正常运行,例如:[2] 10654。

【结束程序】

ps -ef | grep OneList

查找正在运行的程序

root 10585 1 0 18:52 pts/0 00:00:00 /www/wwwroot/OneList/OneList -bind 0.0.0.0 -port 8887

想要结束程序的话,只需要输入 kill -9 10585就可以了。

冷场莹