反代OneDrive并修改OneIndex实现高速下载

什么是 OneIndex

Onedrive Directory Index

功能:

不占用服务器空间,不走服务器流量,

直接列出 OneDrive 目录,文件直链下载。

开始

【注意】操作反代之后,虽然能提升 OneIndex上的下载和预览速度,但将失去[不走服务器流量]的优势!将使用你的服务器的流量来跑 OneDrive 下载,如果是限制小流量、按流量收费的服务器请谨慎尝试!!

准备

  • 拥有一台服务器( VPS、独立服务器等能够搭建互联网服务的均可)
  • 已经搭建好 OneIndex

反向代理自己的 OneDrive 地址

参考下列文章的【开始】部分和【使用宝塔……】

修改 OneIndex 程序

1.打开安装好的 oneindex目录/lib/onedrive.php

2.找到

foreach((array)$data['value'] as $item){
                //var_dump($item);
                $items[$item['name']] = array(
                    'name'=>$item['name'],
                    'size'=>$item['size'],
                    'lastModifiedDateTime'=>strtotime($item['lastModifiedDateTime']),
                    'downloadUrl'=>$item['@microsoft.graph.downloadUrl'],
                    'folder'=>empty($item['folder'])?false:true
                );
            }

3.修改其中的 'downloadUrl'=>$item['@microsoft.graph.downloadUrl'], 最后如下

foreach((array)$data['value'] as $item){
                //var_dump($item);
                $items[$item['name']] = array(
                    'name'=>$item['name'],
                    'size'=>$item['size'],
                    'lastModifiedDateTime'=>strtotime($item['lastModifiedDateTime']),
                    'downloadUrl'=>str_ireplace("截取的链接","反代的链接",$item['@microsoft.graph.downloadUrl']),
                    'folder'=>empty($item['folder'])?false:true
                );
            }

其中 【截取的链接】 和 【反代的链接】 对应前面在宝塔或是 Nginx 配置文件中自己设置的链接

完成后保存,并访问自己搭建的 OneIndex 测试是否成功

后言

之所以使用 OneDrive 列目录程序 + 反向代理 OneDrive 服务器,而不是直接使用私有网盘+挂载 OneDrive 。。是因为我这边测试了下有以下的问题

  • 许多私有网盘不支持 OneDrive 挂载
  • 若使用 rclone 挂载 OneDrive ,再用网盘程序下载文件,服务器CPU会飙升100%,下载速度归0
  • rclone 自带的 web 功能性不足(没有测试过就得出的结论,不过这是显而易见的)
© 版权声明
THE END
喜欢就支持以下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容