文章目录
前言:
YukiDrive是一个 Onedrive & SharePoint 文件浏览程序,支持国际版和世纪互联版。
作者项目地址:https://github.com/YukiCoco/YukiDrive
目前的最新版已支持CDN/反代加速功能。
1、准备:
- 宝塔面板的最新版本
- Nginx(在宝塔面板的应用商店中安装,建议使用1.18版本的编译安装,其他版本和方式也OK)
- 下载最新版源码并将其解压。地址:https://drive.kurisu.moe/#/onedrive/YukiDrive【不要下载CLI,下载最新版本适合你系统的,本教程使用
YukiDrive-1.1.3-linux-x64.zip
】 - 打开解压后的
appsettings.json
配置文件
2、获取 ClientId 与 ClientSecret
- 登录Azure: https://portal.azure.com/ (国际版) 或 https://portal.azure.cn/ (世纪互联版)
- 点击 应用注册 。如果首页未找到应用注册,可以从 Azure Active Directory 找到
- 点击新注册
- 应用名称任意取,账户类型为
任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户
,重定向URL设置为Web类型,链接填写为https://你的域名/api/admin/bind/new
。
- 在“概述”中找到
应用程序(客户端)ID
,也就是ClientId,点右边的图标将其复制下来或手动复制,将复制下来的ID填入配置文件中的ClientId
字段。
- 点击左侧的 API权限 → 添加权限 → Microsoft Graph → 委托的权限
- 先找到大类 Files ,勾选
Files.ReadWrite.All
,再找到大类 Sites ,勾选Sites.ReadWrite.All
,然后点击添加权限
。
- 点击左侧的 证书和密码 → 新客户端密码 ,说明随便填,截止期限选择 从不,然后将其复制下来,填入配置文件中的
ClientSecret
字段。
4、配置 appsettings.json
从解压后的文件目录中找到 appsettings.json 并修改。
{
"Logging": {
"LogLevel": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionString": "Data Source=YukiDrive.db;",
"ClientId": "这里填写应用程序ID",
"ClientSecret": "这里填写客户端密码",
"ListeningUrls": "https://*:1272;http://*:1273",
"Certificate" : {
"Enable" : false,
"FilePath" : "",
"Password" : ""
},
"BaseUri":"填写网站域名,例如:https://pan.cdnweb.icu",
"Proxy":"",
"Type":"Global",
"AccountName": "填写Office账号的用户名",
"DominName": "填写SharePoint域名,例如:michael1106.sharepoint.com",
"AdminName" : "填写网页后台管理用户名",
"AdminPassword": "填写网页后台管理密码",
"CDNUrls" : [
"michael1106-my.sharepoint.com;dl1-my-pan.cdn.201853910.icu",
"michael1106.sharepoint.com;dl1-pan.cdn.201853910.icu"
"这里是你的SharePoint网址;这里是你的CDN反代网址"
]
}
ClientId
与 ClientSecret
填写在上一步所得值。
ListeningUrls
和 Certificate
与https有关,但由于本教程是使用宝塔,故填写 false
。
BaseUri
修改为你的域名,非默认的443端口必须带上端口号,必须使用 https。
Type
是你的账号的地区,一般都是国际版账号,应填写 Global
;世纪互联版的则填写 China
。
【分辨账号是国际版还是世纪互联:在Onedrive中上传一个文件,用浏览器下载下来。下载链接如果是 sharepoint.com/...
的就是国际版,如果是 sharepoint.cn/...
则是世纪互联】
AccountName
为你的Office账户名
DominName
为你的 SharePoint 域名,将OneDrive文件下载链接 xxx-my.sharepoint.com
的 -my
去掉,即为SharePoint域名。例如将 michael1106-my.sharepoint.com 改为 michael1106.sharepoint.com
AdminName
和 AdminPassword
为网站后台的账户和密码。
CDNUrls
为配置使用CDN反代加速功能,不需要使用该功能可以直接删除,如果需要使用,可以参参考本教程配置,也可看官方文档:https://github.com/YukiCoco/YukiDrive/blob/master/doc/CDN-usage.md
5、设置https
由于本篇文章讲解的是使用宝塔面板,所以没有其他方法,需要其他方法的请自行打开官方文档查看:https://github.com/YukiCoco/YukiDrive/blob/master/doc/Usage.md
- 将
ListeningUrls
改为http://*:1273
,也就是删除掉https://*:1272;
- 将
Certificate
的 Enable 的值true
修改为false
并保存 - 打开宝塔,创建网站,设置为纯静态,并绑定域名
- 将新建的网站开启https,并启用强制跳转https(在网站的SSL设置里面)
- 在网站设置中找到 反向代理 ,添加反向代理:
- 代理名称随意填
- 目标URL填写为 http://127.0.0.1:1273
- 发送域名使用默认的 $host
- 保存
- 进入网站根目录,将创建网站自动新建的文件删掉,并将源码上传至网站根目录。
- 修改网站配置:
- 点击网站目录设置
- 修改目录为网站根目录/wwwroot
- 别忘了点右边的“保存”
- 网站配置结束
6、设置守护进程
Windows 用户不必考虑此配置
- 连接Linux,并以root账户登录
- 根据下面的提示做出修改后,复制整条语句到控制台执行
RUNDIR=/www/wwwroot/pan.cdnweb.icu
echo "[Unit]
Description=YukiDrive
[Service]
WorkingDirectory=$RUNDIR
ExecStart=$RUNDIR/YukiDrive
Restart=always
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-YukiDrive
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target" > /etc/systemd/system/YukiDrive.service
修改说明:将 RUNDIR=/www/wwwroot/pan.cdnweb.icu
修改为自己网站的根目录(其实就是修改为程序目录)即可。
使用命令开启并启动服务:
服务说明:
开启服务: systemctl enable YukiDrive
启动服务: systemctl start YukiDrive
查看服务状态:systemctl status YukiDrive
停止服务:systemctl stop YukiDrive
关闭服务:systemctl disable YukiDrive
7、绑定Office账户
未绑定之前访问网站会显示 出现错误:undefined
,不必理会。
请先确认站点的 https 可用再进行下一步操作。
在浏览器中访问 https://你的域名/#/login
登录,进入后台,点击认证后登录你的微软账户。认证完成后会跳转回后台,此时将会显示为已认证。
点击添加站点,站点名称填写为 onedrive ,显示名随意。
点击添加站点,站点名称填写为你在SharePoint创建的网站名称,显示名随意。
8、CentOS 7 认证后出现错误代码500
输入:cp /etc/pki/tls/cert.pem /usr/local/openssl/
即可解决