基于Onedrive和Server搭建下载站/网盘
本文最后更新于 2021年7月3日 凌晨
前言
百度网盘空间很大,但是限速,东西还容易被封;坚果云、Google Driver等网盘不限速,但是空间又小。有没有既可以存文件,又可以分享的网盘呢?其实勉勉强强有:很多买Office365的用户,有1T 的Onedrive空间,我们可以配合服务器的Web环境,建立个人下载站、分享站或者说是网盘。
实现效果:映射你Onedrive的资源(或一个文件夹内资源)分享给你朋友、同学,或者把你Onedrive一个文件夹内所有文件变成下载站。
为了方便大家观看教程;可以关注本站微信公众号:MintimateBlog
前提
- 有一台个人服务器(或使用公共免费服务器)
- 有读写权限的世纪互联版Onedrive或Office365附赠的Onedrive
- 有个人域名(非必须)
服务器推荐:
个人推荐是阿里轻量级香港服务器
最终效果图
搭建好处:
- 映射自己Onedrive内容
- 视频、Word等文件可以在线打开
- 图片提供网络直链(图床功能)
- 避免消耗服务器流量和空间(直接映射Onedrive)
图文对应视频教程
环境准备
无个人服务器用户申请免费服务器:https://www.000webhost.com/
有个人服务器用户安装PHP(你也可以使用一些PHP的Serverless服务)
【推荐】为了 方便操作,我这边使用宝塔面板:
宝塔官网:https://www.bt.cn/?invite_code=MV9rd3Jmbno=
服务器安装宝塔后,安装PHP(建议5.6~7.4版本)、Nginx(版本随意):
之后,选择网站–添加网站:
之后打开这个网站的目录,下载这个Oneindex项目master到本目录:
- (过时,需要用户手动更改和搭建转发服务)基于Oneindex的OneindexN项目,作者:xieqifei
- (推荐)基于Oneindex、OneindexN的OneindexM,作者:Mintimate
我作为OneindexM的作者,当然演示OneindexM啦
下载源码
之后设置权限,给www用户全部读写权限,进入网站:
之后,点击下一步以后,出现界面:
我们的环境准备就完成了。
应用ID和机密
可以从这张图里看到:
我们需要三个参数:
- client_secret:应用机密,即:客户端密码。
- client_id:应用ID,即:应用代号。
- URL:这个URL用于创建应用时,授权验证。
创建应用
如果你是Office365送的OneDrive,也就是Onedrive国际版本,到Microsoft Azure App registrations内创建。
如果你是世纪互联版本OneDrive,到Microsoft Azure.cn App registrations内创建。
之后,我们填入需要的参数:
- 名称:最好为纯英文。
- 受支持的帐户类型:如图:选择任何组织目录的账号和个人
- 重定向 URI:这里填入我建立的API:
https://tool.mintimate.cn/oneindexM/
之后,点击注册即可。
获取应用ID
应用ID很好获取,注册了后,即可获得:
设置权限
在获取应用机密前,我们需要设置权限,点击:API权限
-Microsoft Graph
:
依此勾选:
- offline_access
- Files.Read
- Files.Read.All
最后更新权限即可:
到此,设置权限结束,接下来,我们可以去获取机密了。
获取机密
最后,我们可以获取应用机密(密钥)了,点击:证书和密码
-新建客户端密码
:
按提示设置即可得到:
初始化OneIndex
上一步,我们已经得到了应用ID和机密,现在我们填入即可:
之后,点击下一步
-绑定账号
,即可完成绑定:
你可以选择进入后台,也可以选择直接浏览效果页面。(默认为你OneDrive的根目录)
快速上手OneIndex
首先,我们需要初始化网盘,进入后台后点击页面缓存,选择重建所有缓存:
其次,强力建议设置OneIndex起始页:
这样,就等于将根目录下Share文件夹以及Share文件夹下的子文件夹以及文件划给OneIndex,其他文件夹OneIndex依旧不可读,也就不会公开。避免隐私泄露。
最后,更改后台密码:
总结
基于PHP实现对OneDrive接口进行分装和处理的OneIndex,可以说:满足大部分人的需求了。其实,也不一定需要服务器。下次我给大家介绍介绍?(疯狂暗示)