宝塔面板搭建YukiDrive-一个 Onedrive & SharePoint 文件目录浏览程序

项目地址: https://github.com/YukiCoco/YukiDrive
本站演示地址: https://yun.818512.xyz/
官方演示地址:https://drive.yukino.co/

特点

  • 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

点击 证书和密码 / 新客户端密码,创建密码并记录为 ClientSecret(点添加后记得保存生成的密钥,此密钥只显示一次,本次不保存就只能重新生成)

新建站点

  1. 创建网站,设置为纯静态。
  2. 绑定域名并申请证书,开启 https
  3. 下载 YukiDrive
  4. 下载程序到网站根目录。下载地址:https://drive.yukino.co/api/files/onedrive/YukiDrive/WebApi/1.1.1/YukiDrive-1.1.1-linux-x64.zip
  5. 下载之后解压。宝塔如何在面板解压略过。

网站配置文件修改

注释网站配置文件如下代码:

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 修改为你的域名,有端口必须带上端口号,必须使用 https
Type 为你的 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
© 版权声明
THE END
喜欢就支持以下吧
点赞59赞赏
分享
评论 抢沙发

请登录后发表评论