后端采用 .net core 3.1,前端使用 Vue ,前后端分离,无刷新加载。
无需搭建运行环境,下载并配置完成后直接运行。
项目地址: https://github.com/YukiCoco/YukiDrive
本站演示地址:
官方演示地址:
特点
- Net Core 多线程高并发
- 前后端分离,无刷新加载
- 可挂载 OneDrive 和任意多个 SharePoint 站点
- 提供文件上传 CLI
- 上传文件
- 无大小限制
- 由 浏览器&CLI 直接对微软服务器上传,不消耗流量
部署
准备
- 宝塔面板最新版本
- NGINX1.15以上版本
- 解析好的域名
获取 ClientId 与 ClientSecret
登录Azure:https://portal.azure.com/ 或 https://portal.azure.cn/ (世纪互联)
点击 Azure Active Directory / 应用注册 / 新注册
名字任意取,账户类型为 任何组织目录(任何 Azure AD 目录 - 多租户)中的帐户
,重定向URL为 https://你的域名/api/admin/bind/new
点击 概述,记录应用程序(客户端)ID,即为 ClientId
点击 API 权限 / 添加权限 / Microsoft Graph / 委托的权限
勾选 Files.ReadWrite.All
和 Sites.ReadWrite.All
点击 证书和密码 / 新客户端密码,创建密码并记录为
新建站点
- 创建网站,设置为纯静态。
- 绑定域名并申请证书,开启 https
- 下载 YukiDrive
- 下载程序到网站根目录。下载地址:https://drive.yukino.co/api/files/onedrive/YukiDrive/WebApi/1.1.1/YukiDrive-1.1.1-linux-x64.zip
- 下载之后解压。宝塔如何在面板解压略过。
网站配置文件修改
注释网站配置文件如下代码:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
网站目录修改
在网站设置→网站目录 中修改网站目录为:
/www/wwwroot/你的网站根目录/YukiDrive/wwwroot
设置反带
宝塔面板设置反带,网站设置→反向代理
具体设置如下:
- 目标url: http://localhost:1273;
- 发送域名:$host
- 代理名称:pan
配置 appsettings.json
从解压后的文件目录中找到 appsettings.json 并修改
以下为自用模板(只适用于宝塔面板)
{
"Logging": {
"LogLevel": {
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*",
"ConnectionString": "Data Source=YukiDrive.db;",
"ClientId": "在Azure注册得到的应用ID",
"ClientSecret": "注册应用后生成的密钥",
"ListeningUrls": "http://*:1273",
"Certificate" : {
"Enable" : false,
"FilePath" : "",
"Password" : ""
},
"BaseUri":"你的域名",
"Proxy":"",
"Type":"Global",
"AccountName": "你的 Office账户名",
"DominName": " SharePoint 域名",
"AdminName" : "网站后台的账户",
"AdminPassword": "网站后台的密码"
}
ClientId
与 ClientSecret
填写在上一步所得值ListeningUrls
和 Certificate
与 https 证书有关,下一步再讲BaseUri
修改为你的域名,有端口必须带上端口号,必须使用 httpsType
为你的 Office 账户地区,
可选择为China
世纪互联Global
国际版AccountName
为你的 Office账户名,如:Sakura@yukistudio.onmicrosoft.com
DominName
为你的 SharePoint 域名,登录 SharePoint 就能在浏览器地址栏看到,如:yukistudio.sharepoint.com
AdminName
和 AdminPassword
为网站后台的账户和密码Certificate
为https类型
Enable
为开启程序自设置
false
使用外部代理
启动程序
以上配置全部完成后,ssh登陆到shell,cd跳转到程序目录执行 ./YukiDrive
就开始运行了。
启动并登录后台绑定账户
未绑定之前直接访问域名会显示 出现错误:undefined 不必理会
配置完成后,跳转到程序目录执行 ./YukiDrive 就开始运行了。
Windows 用户直接打开 YukiDrive.exe 开始运行。
绑定账号
请先确认站点的 https 可用再进行下一步操作。
在浏览器中访问 https://你的域名/#/login 登录,进入后台后找到 SharePoint 账户,点击认证后登录你的微软账户。认证完成后会跳转回后台,此时将会显示为已认证
添加 Onedrive
点击添加站点,站点名称填写为 onedrive ,显示名随意。
添加任意多个 SharePoint
点击添加站点,站点名称填写为 SharePoint 创建网站时所填写的站点名称(建议创建为英文字符),显示名随意。
守护程序进程
Windows 用户不必考虑此配置
在 Linux 上的程序仅运行于本地账户,退出即关闭,应该将其注册为服务以便能够开机自启和出错重启
将以下命令做一些修改后复制下列整条语句到控制台执行
echo "[Unit]
Description=YukiDrive
[Service]
WorkingDirectory=/www/wwwroot/pan.818512.xyz/YukiDrive #修改为 程序所在目录
ExecStart=/www/wwwroot/pan.818512.xyz/YukiDrive/YukiDrive #修改为 程序目录/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
指令操作
启动服务
systemctl enable YukiDrive.service
systemctl start YukiDrive.service
查看服务状态
systemctl status YukiDrive.service
显示以下语句即为正常运行
● YukiDrive.service - YukiDrive
Loaded: loaded (/etc/systemd/system/YukiDrive.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-03-23 23:39:50 EDT; 2h 6min ago
Main PID: 7206 (YukiDrive)
Tasks: 14 (limit: 4915)
CGroup: /system.slice/YukiDrive.service
└─7206 /www/wwwroot/yukidrive/linux/YukiDrive
Mar 23 23:39:50 ThoroughUnconscious-VM systemd[1]: Started Example .NET Web API App running on Ubuntu.
Mar 23 23:39:50 ThoroughUnconscious-VM dotnet-YukiDrive[7206]: 开始启动程序...
Mar 23 23:39:54 ThoroughUnconscious-VM dotnet-YukiDrive[7206]: Hosting environment: Production
Mar 23 23:39:54 ThoroughUnconscious-VM dotnet-YukiDrive[7206]: Content root path: /www/wwwroot/yukidrive/linux
Mar 23 23:39:54 ThoroughUnconscious-VM dotnet-YukiDrive[7206]: Now listening on: http://localhost:1273
Mar 23 23:39:54 ThoroughUnconscious-VM dotnet-YukiDrive[7206]: Application started. Press Ctrl+C to shut down.
退出服务
systemctl stop YukiDrive.service
请登录后发表评论
注册
社交帐号登录