基于Onedrive和Server搭建下载站/网盘

本文最后更新于:2021年7月3日 凌晨

前言

百度网盘空间很大,但是限速,东西还容易被封;坚果云、Google Driver等网盘不限速,但是空间又小。有没有既可以存文件,又可以分享的网盘呢?其实勉勉强强有:很多买Office365的用户,有1T 的Onedrive空间,我们可以配合服务器的Web环境,建立个人下载站、分享站或者说是网盘。

实现效果:映射你Onedrive的资源(或一个文件夹内资源)分享给你朋友、同学,或者把你Onedrive一个文件夹内所有文件变成下载站。

为了方便大家观看教程;可以关注本站微信公众号:MintimateBlog

本博客官方公众号

前提

  • 有一台个人服务器(或使用公共免费服务器)
  • 有读写权限的世纪互联版Onedrive或Office365附赠的Onedrive
  • 有个人域名(非必须)

服务器推荐:

  1. 阿里轻量级香港服务器
  2. 阿里学生服务器
  3. vultr服务器

个人推荐是阿里轻量级香港服务器

最终效果图

效果图-1

效果图-2

效果图-3

搭建好处:

  • 映射自己Onedrive内容
  • 视频、Word等文件可以在线打开
  • 图片提供网络直链(图床功能)
  • 避免消耗服务器流量和空间(直接映射Onedrive)

图文对应视频教程

环境准备

无个人服务器用户申请免费服务器:https://www.000webhost.com/

有个人服务器用户安装PHP(你也可以使用一些PHP的Serverless服务)

【推荐】为了 方便操作,我这边使用宝塔面板:

宝塔官网:https://www.bt.cn/?invite_code=MV9rd3Jmbno=

服务器安装宝塔后,安装PHP(建议5.6~7.4版本)、Nginx(版本随意):

宝塔内选择安装插件 之后,选择网站–添加网站:

宝塔内新建Nginx之后打开这个网站的目录,下载这个Oneindex项目master到本目录:

  1. (过时,需要用户手动更改和搭建转发服务)基于Oneindex的OneindexN项目,作者:xieqifei
  2. (推荐)基于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和机密,现在我们填入即可:
输入ID和密钥

之后,点击下一步-绑定账号,即可完成绑定:
绑定确认
绑定成功

你可以选择进入后台,也可以选择直接浏览效果页面。(默认为你OneDrive的根目录)

快速上手OneIndex

首先,我们需要初始化网盘,进入后台后点击页面缓存,选择重建所有缓存

其次,强力建议设置OneIndex起始页

这样,就等于将根目录下Share文件夹以及Share文件夹下的子文件夹以及文件划给OneIndex,其他文件夹OneIndex依旧不可读,也就不会公开。避免隐私泄露。

最后,更改后台密码:

总结

基于PHP实现对OneDrive接口进行分装和处理的OneIndex,可以说:满足大部分人的需求了。其实,也不一定需要服务器。下次我给大家介绍介绍?(疯狂暗示)


若对文章很感兴趣,可以B站关注我ヾ(≧▽≦*)o

点击跳转“爱发电”页面(○` 3′○)