因为Oneindex已经长时间未更新,所有现在比较推荐使用Onelist来建设OneDrive的网页程序,Onelist是一个开源的OneDrive网页程序 有python语言和Golang语言两个版本,作者表示python的bug较多,功能也不全,所有本文以下内容均为Golang语言

截图

Onelist截图.jpg

Onelist的功能

支持 国际版, 个人免费版(家庭版), 中国版(世纪互联).
支持同时列出多个盘的目录.(同时挂载多个网盘或单个网盘挂载成多个SubPath,要求每个SubPath唯一)
支持文件夹内超过 200 个项目
支持后台自动刷新缓存.
支持路径中含有特殊字符.
支持使用不同目录使用不同账户密码加密(HTTP 401).
支持隐藏目录和文件(跳过缓存).
支持自定义 ClientIDSecretKey .
数据储存在内存中,响应更加迅速.

首先要拿到OneDrive的COOKIE

使用右键打开新标签页,然后把链接复制进去,登陆自己的OneDrive账户,授权后会获取一个localhost开头打不开的链接,这里复制好整个链接地址,包括localhost。
国际版, 个人版(家庭版)

中国版(世纪互联)

安装Onelist程序

新建并进入OneList目录
mkdir /home/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

运行命令

将获取的完整url内容替换命令中的 url 三个字母,每次产生的 url 只能用一次, 重试请重新获取 url,此操作将会自动添加的配置文件

国际版
OneList -a "url" -s "/od1"
个人版(家庭版)
OneList -ms -a "url" -s "/od2"
中国版(世纪互联)
OneList -cn -a "url" -s "/od3"

提示 Success! Add config. '/path/to/config.json' 则成功

修改配置文件

接下来修改配置文件,配置文件为同目录下面的
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
  }
]

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

下载主题主题页面,然后启动程序

首先下载主题,这里推荐HaorWu

作者
https://github.com/HaorWu

特点
支持移动端自适应
支持当页搜索
支持按文件名, 日期, 大小排序
支持主动查看图片
支持在线播放视频

下载地址 https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/%40Theme/HaorWu/index.html

监听8080端口启动

./OneList -bind 0.0.0.0 -port 8080

启动后就可以打开http://IP:8080来访问

使用命令

Usage of OneList:
  -a string
    // 初始化配置文件,添加新配置
    Setup and Init auth.json.
  -bind string
    // 绑定IP地址(公网: 0.0.0.0)
    Bind Address (default "127.0.0.1")
  -port string
    // 绑定端口(HTTP:80)
    Port (default "5288")
  -s string
    // 设置 SubPath 项, 需要与 -a 一起使用.
    Set SubPath. [unique per account] (default "/")
  -c string
    // 配置文件
    Config file. (default "config.json")
  -t string
    // Index.html 目录样式文件
    Index file. (default "index.html")
  -json
    // 开关
    // 数据以 json 形式输出当前目录数据
    Output json.
  -cn
    // 开关
    // 授权中国版(世纪互联), 需要此参数.
    OneDrive by 21Vianet.
  -ms
    // 开关
    // 授权个人版(家庭版), 需要此参数.
    OneDrive by Microsoft.
  -C string
    // 覆写所有预置的 Client ID. (不建议新手使用此参数)
    Set  Client ID. [Overwrite all clientId]
  -S string
    // 覆写所有预置的 Secret Key. (不建议新手使用此参数)
    Set Secret Key. [Overwrite all secretKey]
  -P string
    // 设置反代域名.此设置将全部流量定向到某个服务器或CDN,用于隐藏全局域名或者加速.
    // 每组以";"相间隔. 源域名与目标域名以"|"间隔. 可以设置多组.
    // 默认为空,使用时不要带中括号. (不建议新手使用此参数)
        Set Proxy Domain. ["x.sharepoint.com|domain.com;x.sharepoint.cn|domain.cn;..."]

反代加速

根据命令中-P指令可知可以使用页面反代来加速下载和播放速度
那么我们可以去注册nodecache家的CDN来反代使用
首先注册这家
点击注册
注册完毕后验证右键即可获得100G的大陆直连流量,然后进入CDN控制面板添加域名
注意这里域名不要和访问Onelist网页的域名相同
服务名称不指定内容,写什么都可以,加速域名写自己的反代域名,需要申请SSL证书,建议反代域事先申请好证书
源站设置里面,回源协议选中协议跟随,在线路配置里面写上自己的OneDrive的SharePoint域名,不要写错了。
加速区域选择大陆直连
进入配置页面,在回源管理设置里面找到回源 Host,旁边的管理里面输入SharePoint域名
然后找到HTTPS设置页面,点击HTTPS配置旁边的管理,添加证书,把自己加速域名的证书写上去,然后保存,保存后在下面选择证书以及打开https访问
随后在首页找到CANME线路,去你的DNS解析商那边解析这条线路,这里的设置就完成了

解析完成后使用ctrl+C结束掉正在运行的Onelist程序,然后重新输入

./OneList -bind 0.0.0.0 -port 8080 -P "sharepoint域名|你的加速域名"

重新访问http://IP:8080测试是否反代成功
如果反代成功就可以启动程序并隐藏到后台了

nohup /home/onelist/OneList -bind 0.0.0.0 -port 8080 -P "sharepoint域名|加速域名" >/dev/null 2>&1 &

使用宝塔搭建域名访问

首先进入宝塔后台创建域名,选择静态就可以了,不需要php,打开域名设置,添加反向代理,输入https://IP:8080 发送域名输入$host即可,这样你就可以使用域名访问Onelist了

感谢MoeClub提供的onelist程序
https://github.com/MoeClub/OneList


一步之遥 交错而过